تشريح طلب الـ API: الـ Endpoint، الـ Headers، والـ Body


يا هلا بالشباب! اليوم بنتكلم عن أساسيات أي طلب API، اللي هي الـ Endpoint، الـ Headers، والـ Body. هذي الأشياء هي اللي تكون طلبك عشان السيرفر يفهم وش تبي بالضبط.

الـ Endpoint (المسار)

الـ Endpoint هو ببساطة العنوان اللي ترسل له طلبك. تخيل إنك بتدق على مطعم، الـ Endpoint هو رقم المطعم هذا. يتكون من شيئين رئيسيين:

  • الـ Base URL: هذا هو الجزء الثابت من العنوان، زي https://api.example.com.
  • الـ Path: هذا الجزء اللي يحدد المورد اللي تبغاه، زي /users عشان تجيب المستخدمين، أو /products/123 عشان تجيب منتج معين.

مثال على Endpoint كامل:

GET https://api.example.com/users/123

ملاحظة: الـ HTTP Method (زي GET, POST, PUT, DELETE) تحدد نوع العملية اللي تبي تسويها على الـ Endpoint هذا.

الـ Headers (الرؤوس)

الـ Headers هي معلومات إضافية ترسلها مع طلبك، مو عشان السيرفر يعرف وش المورد اللي تبيه، لكن عشان يعرف كيف يتعامل مع الطلب هذا. تقدر تشوفها زي الظرف اللي تحط فيه رسالتك، وتكتب عليه معلومات مهمة زي المرسل، نوع الرسالة، وهل هي مستعجلة أو لا.

أكثر الـ Headers اللي بنشوفها:

  • Content-Type: يحدد نوع البيانات اللي ترسلها في الـ Body. مثلاً: application/json إذا كنت ترسل JSON، أو application/x-www-form-urlencoded إذا كنت ترسل بيانات فورم.
  • Authorization: هنا تحط بيانات التوثيق (Authentication) عشان السيرفر يتأكد إنك مصرح لك تسوي هالطلب. غالباً تكون على شكل Bearer Token.
  • Accept: يحدد نوع البيانات اللي تتوقع ترجع لك من السيرفر.

مثال على Headers في طلب:

GET /api/data HTTP/1.1
Host: example.com
User-Agent: MyCustomClient/1.0
Accept: application/json
Authorization: Bearer YOUR_ACCESS_TOKEN

ملاحظة: الـ Headers مهمة جداً للأمان، لأنها تحمل مفاتيح التوثيق والتحقق من الصلاحيات.

الـ Body (الجسم)

الـ Body هو المكان اللي تحط فيه البيانات الفعلية اللي تبي ترسلها للسيرفر. مو كل طلب يحتاج Body. مثلاً، طلب GET عادةً ما يكون له Body لأنك بس تطلب بيانات. لكن طلبات زي POST (لإضافة شي جديد) أو PUT (لتعديل شي موجود) تحتاج Body عشان ترسل البيانات الجديدة.

أكثر أنواع الـ Body استخداماً:

  • JSON: الأكثر شيوعاً. سهل للقراءة والكتابة.
  • Form Data: يستخدم غالباً في الفورمات حق الويب.
  • XML: أقل استخداماً الآن مقارنة بالـ JSON، لكن لا يزال موجوداً.

مثال على Body لطلب POST لإنشاء مستخدم جديد:

POST https://api.example.com/users
Content-Type: application/json

{
    "name": "أحمد",
    "email": "ahmed@example.com",
    "password": "strongpassword123"
}

ملاحظة: تأكد دائماً إن الـ Content-Type في الـ Headers يتطابق مع نوع البيانات اللي ترسلها في الـ Body.

وبكذا نكون غطينا الأجزاء الأساسية لأي طلب API. لما تفهم هذي المكونات الثلاثة (الـ Endpoint، الـ Headers، والـ Body)، بتصير عندك رؤية أوضح لكيفية بناء التفاعلات مع أي API. بالتوفيق!