واجهة برمجة التطبيقات (API - Application Programming Interface) هي مجموعة من القواعد والبروتوكولات التي تسمح لتطبيقات البرامج المختلفة بالتواصل مع بعضها البعض. فكر فيها كرسول يأخذ الطلبات من تطبيق واحد، ويسلمها إلى تطبيق آخر، ثم يعيد الاستجابة.
1. ما هي واجهة برمجة التطبيقات (API)؟
في جوهرها، تحدد واجهة برمجة التطبيقات الطرق وتنسيقات البيانات التي يمكن للتطبيقات استخدامها لطلب وتبادل المعلومات. إنها تعمل كوسيط، مما يسمح لمكونات البرامج بالتفاعل دون الحاجة إلى معرفة التفاصيل المعقدة لآلياتها الداخلية.
تُستخدم واجهات برمجة التطبيقات في كل مكان في تطوير البرمجيات:
- خدمات الويب: عندما تستخدم تطبيقًا للطقس، فمن المحتمل أن يستخدم واجهة برمجة تطبيقات لجلب بيانات الطقس من خدمة الطقس.
- أنظمة التشغيل: يوفر نظام التشغيل الخاص بك واجهات برمجة تطبيقات للتطبيقات للتفاعل مع الأجهزة (مثل الكاميرا أو GPS) أو خدمات النظام.
- المكتبات: تكشف مكتبات البرامج عن واجهات برمجة التطبيقات للسماح للمطورين باستخدام وظائفها.
2. كيف تعمل واجهة برمجة التطبيقات (API)؟
تتضمن العملية بشكل عام هذه المكونات والخطوات الرئيسية:
- العميل: التطبيق الذي يقوم بالطلب (على سبيل المثال، متصفح الويب الخاص بك، تطبيق جوال).
- نقطة نهاية واجهة برمجة التطبيقات (API Endpoint): عنوان URL محدد على الخادم يرسل إليه العميل الطلبات.
- الطلب: يرسل العميل طلبًا إلى نقطة نهاية واجهة برمجة التطبيقات. يتضمن هذا الطلب عادةً:
- طريقة HTTP: تحدد الإجراء المراد تنفيذه (على سبيل المثال،
GETلاسترداد البيانات،POSTلإنشاء البيانات،PUTلتحديث البيانات،DELETEلحذف البيانات). - الرؤوس (Headers): تحتوي على بيانات وصفية حول الطلب (على سبيل المثال، رموز المصادقة، نوع المحتوى).
- الجسم (Body) (اختياري): يحتوي على البيانات المراد إرسالها إلى الخادم (على سبيل المثال، لطلبات
POSTأوPUT).
- طريقة HTTP: تحدد الإجراء المراد تنفيذه (على سبيل المثال،
- الخادم: التطبيق أو الخدمة التي تستضيف واجهة برمجة التطبيقات. يتلقى الطلب ويعالجه ويجهز استجابة.
- الاستجابة: يرسل الخادم استجابة إلى العميل. تتضمن هذه الاستجابة عادةً:
- رمز الحالة: يشير إلى ما إذا كان الطلب ناجحًا (على سبيل المثال،
200 OK،201 Created) أو إذا كان هناك خطأ (على سبيل المثال،400 Bad Request،404 Not Found،500 Internal Server Error). - الرؤوس (Headers): تحتوي على بيانات وصفية حول الاستجابة.
- الجسم (Body) (اختياري): يحتوي على البيانات المطلوبة، عادةً بتنسيق JSON أو XML.
- رمز الحالة: يشير إلى ما إذا كان الطلب ناجحًا (على سبيل المثال،
تشبيه: المطعم
تخيل أنك في مطعم:
- أنت (العميل): تريد طعامًا.
- القائمة (وثائق واجهة برمجة التطبيقات): تسرد ما يمكنك طلبه وكيف.
- النادل (API): تخبر النادل بما تريده من القائمة. يأخذ النادل طلبك (الطلب) إلى المطبخ.
- المطبخ (الخادم): يعد طعامك (يعالج الطلب).
- النادل (API): يعيد طعامك (الاستجابة) إليك.
3. أنواع واجهات برمجة التطبيقات (APIs)
- واجهات برمجة تطبيقات الويب (Web APIs): هذه هي واجهات برمجة التطبيقات التي يتم الوصول إليها عبر الإنترنت باستخدام HTTP. تشمل الأمثلة واجهات برمجة تطبيقات REST و SOAP.
- واجهات برمجة تطبيقات المكتبات (Library APIs): هذه هي واجهات برمجة التطبيقات التي توفرها مكتبات البرامج أو الأطر التي يستخدمها المطورون في التعليمات البرمجية الخاصة بهم.
- واجهات برمجة تطبيقات نظام التشغيل (Operating System APIs): تسمح للتطبيقات بالتفاعل مع ميزات نظام التشغيل.
تعد واجهات برمجة التطبيقات أساسية لتطوير البرامج الحديثة، مما يتيح النمطية والتكامل وإنشاء تطبيقات معقدة من خلال الاستفادة من وظائف الخدمات الأخرى.