تخطَّ إلى المحتوى
ARAB CODEمجتمع المطورين العرب

REST APIs

REST أسلوب لتصميم الواجهات البرمجية فوق HTTP: كل شيء مورد له عنوان (URL)، والعمليات عليه تُعبَّر عنها بأفعال HTTP القياسية.

الموارد والأفعال

الطلبالمعنى
GET /postsقائمة المنشورات
GET /posts/42منشور واحد
POST /postsإنشاء منشور
PATCH /posts/42تعديل جزئي
PUT /posts/42استبدال كامل
DELETE /posts/42حذف

استخدم أسماء (posts) لا أفعالاً (getPosts) في المسارات.

  • GET آمن: لا يغيّر شيئاً على الخادم.
  • GET وPUT وDELETE متساوية الأثر (idempotent): تكرار الطلب نفسه يترك الحالة نفسها.
  • POST ليس كذلك، ولهذا تُستخدم أحياناً ترويسة Idempotency-Key لمنع التكرار عند إعادة المحاولة.

رموز الحالة

الرمزمتى
200 OKنجاح مع محتوى
201 Createdأُنشئ مورد (مع ترويسة Location)
204 No Contentنجاح بلا محتوى
400 Bad Requestمدخلات غير صالحة
401 Unauthorizedغير مصادَق (لم يسجل الدخول)
403 Forbiddenمصادَق لكن بلا صلاحية
404 Not Foundالمورد غير موجود
409 Conflictتعارض مع الحالة الحالية
429 Too Many Requestsتجاوز حد الطلبات
500 Internal Server Errorخطأ في الخادم

شكل الأخطاء

أعد بنية ثابتة يفهمها العميل:

{ "error": { "code": "VALIDATION", "message": "البريد غير صالح", "field": "email" } }

الترقيم

للقوائم الكبيرة استخدم الترقيم بالمؤشر (cursor) بدل الإزاحة (offset) لثبات النتائج وسرعتها:

GET /posts?limit=20&cursor=eyJpZCI6NDJ9

أخطاء شائعة

  • إرجاع 200 مع رسالة خطأ في المحتوى.
  • تنفيذ تغييرات عبر GET (قد تُستدعى من الروابط المسبقة أو برامج الزحف).
  • كشف تفاصيل داخلية (تتبع الأخطاء، استعلامات SQL) في رسائل الخطأ.

المصادر

  1. MDN — HTTP request methods
  2. MDN — HTTP response status codes
  3. RFC 9110 HTTP Semantics