قصة قصيرة لفهم الفكرة
كنت جائعًا بالأمس فذهبت إلى مطعم لآكل. قام النادل الذي يعمل هناك بالحضور ليرى ماذا أريد أن آكل، فأخذ مني الطلب الذي أريده وذهب لتوصيله إلى مطبخ المطعم. بعد ذلك، انتظرت قليلاً وعاد لي بالطعام الذي طلبته.
ببساطة، النادل أخذ مني طلبًا وعاد لي بنتيجة.
والآن، سؤال لك:
- هل الأشخاص العاملون في مطبخ المطعم يعرفونني؟ الإجابة هي لا.
- وهل النادل هو الذي أعد الطعام؟ الإجابة هي لا أيضًا.
كان النادل هو الوسيط بيني وبين المطبخ؛ أخذ مني الطلب، أعطاه للمطبخ، وعاد لي بنتيجة. هذا ببساطة هو مفهوم واجهة برمجة التطبيقات (API)، وهو من أبسط وأهم المفاهيم التي يجب عليك كمبرمج أن تعرفها.
ما هو الـ API (واجهة برمجة التطبيقات)؟
الموضوع أبسط مما تتخيل. ببساطة، الـ API (Application Programming Interface) يشبه المترجم أو النادل في قصتنا. عندما يكون هناك طرفان لا يفهمان بعضهما البعض، مثل المستخدم والموقع الذي يستخدمه، أو حتى تطبيقين مختلفين مثل فيسبوك وخرائط جوجل، ويريدان التحدث معًا للوصول إلى نتيجة معينة، هنا يأتي دور الـ API.
يقوم الـ API بنقل الرسائل بين نظامين مختلفين بطريقة يفهمها كلاهما.
أمثلة من حياتنا اليومية
مثال ١: تطبيق الطقس
عندما تفتح تطبيق الطقس على هاتفك المحمول، فإنه يُظهر لك حالة الطقس في مدينتك الحالية. كيف يعرف الهاتف ذلك؟ هل يخمن؟ بالطبع لا. التطبيق يتواصل مع خادم (Server) في مكان آخر عبر API، ويطلب منه حالة الطقس في موقعك الحالي. فيعود له الخادم بإجابة تحتوي على معلومات الطقس، ثم يعرضها لك التطبيق.
مثال ٢: التسجيل باستخدام جوجل
ألم يحدث أن فتحت موقعًا معينًا وظهر لك زر يقول “التسجيل باستخدام جوجل”؟ عندما تضغط على هذا الزر، ما الذي يحدث خلف الكواليس؟
- الموقع الذي تستخدمه لا يملك بياناتك، ولكنه يريد التأكد من أنك شخص حقيقي.
- لذلك، يتواصل مع API تابع لجوجل ويخبره بأنك تريد التسجيل.
- تتأكد جوجل من موافقتك، ثم تعود بالإجابة التي تحتوي على بريدك الإلكتروني والمعلومات الأساسية.
- يسجلك الموقع مباشرة دون أن تحتاج إلى كتابة أي شيء.
كل هذا يحدث باستخدام الـ API. لو لم يكن هناك API، لما حدث أي من هذا.
مثال ٣: خرائط جوجل
عندما تفتح خرائط جوجل وتكتب كلمة “مطاعم”، تظهر لك كل المطاعم القريبة منك. كيف؟ بنفس الطريقة، يرسل التطبيق طلبًا إلى API تابع لخرائط جوجل، يسأله عن موقعك الحالي ويعود بالنتائج المناسبة لك.
الـ API من منظور المبرمج
والآن، لنرتدي نظارة المبرمج ونرى ما يحدث بالفعل. الموضوع برمته يدور حول نقطتين أساسيتين: الطلب (Request) و الإجابة (Response).
عندما نستخدم API خاص بحالة الطقس، فإننا نرسل له طلبًا نقول فيه إننا نريد درجة الحرارة في مدينة القاهرة. قد يبدو الطلب (مبسطًا) هكذا:
GET /weather?city=Cairo
فيعود لك بإجابة تكون على هيئة ملف JSON
، وهي اللغة الشائعة التي تتواصل بها التطبيقات مع الـ API. قد تبدو الإجابة هكذا:
{
"city": "Cairo",
"temperature": 33,
"condition": "Sunny"
}
وبالطبع يمكنه أن يعود بمعلومات أكثر من ذلك بكثير، ويمكنك استخدام كل هذه المعلومات ووضعها في تطبيقك.
عمليات REST API الأساسية
معظم واجهات برمجة التطبيقات تعمل بما يسمى REST API
، وهي تتكون من أربع عمليات أساسية:
- GET: للحصول على بيانات من الـ API.
- POST: لإضافة بيانات جديدة.
- PUT: لتعديل بيانات موجودة.
- DELETE: لحذف بيانات.
أنت تعطيه أمرًا أو طلبًا بإحدى هذه العمليات، وهو يعود لك بالإجابة.
مثال عملي آخر: تطبيق أخبار
ماذا لو أردت إنشاء تطبيق يعرض كل الأخبار في العالم؟ كمبرمج، ليس لديك الوقت أو الإمكانيات للبحث المستمر عن الأخبار الجديدة وإضافتها يدويًا إلى تطبيقك كل يوم.
ببساطة، يوجد API خاص بالأخبار (News). يمكنك أن ترسل له طلبًا مثل:
GET /news?country=Egypt&category=technology
فيعود لك بأهم المقالات من مصادر مختلفة. ثم تأخذ هذه الإجابة (Response) وتعرضها في تطبيقك.
ما هي نقطة النهاية (Endpoint)؟
أخيرًا، سنتحدث عن شيء يسمى نقطة النهاية (Endpoint). عندما تتواصل مع الـ API، فإنك تحدد له النقطة النهائية التي يجب أن يصل إليها. في المثال السابق، كانت نقطة النهاية هي الأخبار (/news
) مع تحديد البلد (Egypt
) والفئة (technology
). فكلمة Endpoint
تعني الوجهة المحددة داخل الـ API التي تريدها ليعود لك بالإجابة الصحيحة.
خلاصة
توجد واجهات برمجة تطبيقات كثيرة جدًا على الإنترنت لكل شيء تحتاجه تقريبًا. كل API تستخدمه يأتي مع توثيق (Documentation) يشرح لك كيفية استخدامه، وكيفية كتابة الكود وإرسال الطلب. فلا تقلق من هذا الجانب.
من المهم جدًا أن تتعلم الـ API بشكل جيد، لأن أي تطبيق أو موقع ستعمل عليه لن يخلو من استخدامه. والأمر بسيط وممتع حقًا، حيث تجلب معلومات من الإنترنت لتعرضها في تطبيقك أو موقعك.
أتمنى أن يكون هذا المقال مفيدًا لك، وأن تكون قد فهمت مفهوم الـ API بوضوح.