الهدف
بنهاية الدرس تعرف الفرق بين GET و POST و PUT و DELETE، تبني GET /api/posts و POST /api/posts في Next.js، وتعرف متى تستخدم أي status code.
ليش هذا الحين؟
ترى كل service على الإنترنت — Stripe، Twilio، Google Maps — يتكلم عبر API. لو ما تفهم REST، ما تقدر تربط خدمة بثانية، وما تقدر توجّه مطورك لبناء endpoints صح. REST مو standard رسمي، بس هو الـ convention اللي كل المطورين يفهمونه.
الفكرة
API = عقد بين برنامجين. يحدد: شنو تطلب، وشنو تتوقع يرجع لك.
REST = استخدام HTTP verbs على resources:
| الـ Verb | الـ URL | العملية |
|---|---|---|
| GET | /api/posts |
اجيب قائمة كل البوستات |
| POST | /api/posts |
سوّ بوست جديد |
| GET | /api/posts/5 |
اجيب البوست رقم 5 |
| PUT | /api/posts/5 |
عدّل البوست رقم 5 |
| DELETE | /api/posts/5 |
احذف البوست رقم 5 |
Status codes المهمة:
200 OK— ناجح201 Created— انضاف (بعد POST)400 Bad Request— البيانات اللي أرسلتها غلط401 Unauthorized— ما عندك session / token403 Forbidden— عندك session بس ما عندك permission404 Not Found— الـ resource مو موجود500 Internal Server Error— مشكلة في السيرفر
JSON = لغة الـ API. كل request و response يستخدم JSON. هذا مو اختيار — هالـ standard.
ليش هذي الـ conventions مهمة؟ أي مطور يشوف GET /api/users يفهم فورا إنه يجيب قائمة مستخدمين. ما يحتاج documentation. الـ convention هو الـ documentation.