هذا الموقع في نسخته التجريبية

ما هو API؟ شرح مبسط بالعربية

‐ مدة قراءة المقال دقيقتان مصطلحاتبرمجةAPI
واجهة برمجية تربط نظامين عبر طلب واستجابة

API هو اختصار Application Programming Interface، أي واجهة برمجة التطبيقات. هو عقد بين برنامجين: يحدد ماذا تطلب، وبأي صيغة، وماذا تحصل بالمقابل. عندما يتحدث الناس عن API اليوم فهم غالباً ما يقصدون واجهة تعمل عبر HTTP وتتبادل البيانات بصيغة JSON.

لماذا يهمك؟

تقريباً كل شيء يتم بناؤه اليوم يقوم على واجهات برمجية: الدفع الإلكتروني (Stripe)، الخرائط (Google Maps)، إرسال الرسائل، خدمات الذكاء الصنعي، وحتى تطبيق الجوال الذي يجلب بياناته من المخدم. من يفهم API يستطيع ربط أي خدمتين تقريباً في العالم ببعضهما.

كيف يعمل؟

الآلية أبسط مما تبدو:

  1. الطلب (Request): يرسل العميل طلب HTTP يتكون من فعل (مثل GET أو POST)، ومسار (مثل https://api.github.com/repos/WordPress/gutenberg)، وترويسات تحمل معلومات إضافية مثل نوع المحتوى المطلوب.
  2. المعالجة: الخادم يقرأ الطلب، ينفذ المطلوب (يجلب بيانات، ينفذ عملية دفع…).
  3. الاستجابة (Response): يعيد الخادم رمز حالة (مثل 200 للنجاح، أو 401 لغير المصرح له، أو 404 لغير الموجود) مع جسم الاستجابة، وهو غالباً نص JSON.

مثال عملي

جلب معلومات مستودع من GitHub بجافاسكربت عبر واجهة GitHub REST البرمجية (يعمل هذا النص البرمجي كما هو في Node أو المتصفح):

const res = await fetch("https://api.github.com/repos/WordPress/gutenberg");
const repo = await res.json();
console.log(repo.full_name, repo.stargazers_count);
// WordPress/gutenberg 11740

وبسطر واحد من سطر الأوامر:

curl -s https://api.github.com/repos/WordPress/gutenberg

وستحصل على استجابة JSON كاملة، مقتطف منها:

{
  "full_name": "WordPress/gutenberg",
  "stargazers_count": 11740,
  "language": "JavaScript",
  ...
}

لاحظ أنك لم تكتب أي نص برمجي في جهة الخادم، فقط استهلكت عقداً جاهزاً موثقاً من قبل جهة أخرى على خوادمها.

متى تبني API ومتى تتجنبه؟

تبنى الواجهة البرمجية عندما:

و يجب تجنب بناؤها عندما:

القاعدة: لا تبنِ API لأن الجميع يبنونه، بل لأن مستهلكاً ثانياً موجود فعلاً.

مصطلحات ذات صلة

مقالات ذات صلة

→ ارشيف المقالات