تخطَّ إلى المحتوى

GET

طريقة GET GET

GET تطلب تمثيل مورد دون تغييره — الطريقة الأكثر استخدامًا في أي REST API.

GET تجلب بيانات مورد محدَّد أو مجموعة موارد، ولا يُفترض أن تُحدِث أي تغيير على الخادم. RFC 9110 يصنّفها كطريقة آمنة (Safe) — أي أنها لا تسبب أثرًا جانبيًا يتحمّل الطالب مسؤوليته — وعديمة الأثر التراكمي (Idempotent) في آن واحد، فتكرار نفس الطلب يعطي نفس النتيجة دائمًا.

لأنها آمنة، تفترض المتصفحات والوسطاء (proxies) وأدوات الزحف أنه يمكن استدعاؤها بحرية وتخزين ردّها مؤقتًا (caching) دون قلق. لهذا لا يجوز أبدًا استخدام GET لتنفيذ عملية تُغيّر البيانات مثل الحذف أو التسجيل.

الصياغة

GET /resource
GET /resource/:id

📄 مثال

GET /api/articles/42 HTTP/1.1
Host: example.com
Accept: application/json

// الاستجابة
HTTP/1.1 200 OK
Content-Type: application/json

{ "id": 42, "title": "مقال عن REST" }

أهم النقاط

العنصرالوظيفة
آمنة (Safe)لا تُغيّر حالة الخادم — يمكن استدعاؤها دون خوف من أثر جانبي
عديمة الأثر التراكمي (Idempotent)تكرار الطلب عدة مرات يعطي نفس النتيجة
قابلة للتخزين المؤقتالمتصفحات والـ CDN تخزّن ردودها افتراضيًا حسب ترويسات Cache-Control

💡 نصائح عملية

  • استخدم معاملات الاستعلام (query params) للتصفية والترقيم بدل تعديل جسم الطلب — GET أصلًا لا يُفترض أن يحمل جسمًا
  • أعد 200 مع البيانات عند النجاح، و404 إن لم يوجد المورد

⚠️ أخطاء شائعة

  • استخدام GET لتنفيذ عملية حذف أو تعديل (رابط "احذف الحساب" كـ GET قابل للنقر يعرّضك لهجمات CSRF)
  • الاعتماد على جسم الطلب (body) مع GET — العديد من الوسطاء والمكتبات يتجاهلونه

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار REST-API الكامل بالعربي.

📚 للتعمق التقني الكامل بالإنجليزية: MDN Web Docs