مقالات

ما هو الـ API وكيف يعمل

what-is-an-api
بواسطة خالد محمد

كثيراً ما نرى كلمة API في المكتبات البرمجية أو الكثير من مواقع الانترنت مثل Facebook , Google . . . الخ ، واذ تطرقنا لمعناها فسوف نجد ان المعنى الحقيقي لكلمة API ليس له صلة بفهومها ، فكلمة API تعني Application Programming Interface أي (واجهة برمجة التطبيقات) ، وهذا المعنى الحرفي لا يُكمل مفهوم الـ API بالشكل المطلوب .

ما هو الـ API ؟

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

لنتعمق قليلاً ، عندما تجلس على طاولة مطعم يأتي الـ “الجرسون” اليك لتطلب منه ما تريد فيستجيب لطلبك ويذهب ليحضره من المطبخ ، فسنجد ان العملية سهلة ( طلب من طرفك ، واستجابة من طرف الـ “الجرسون”  ، لكن هنا المطبخ واحد و الـ “الجرسون” واحد وهناك اشخاص اخرين مثلك عندهم طلبات وينتظرون تنفيذها ، اذاً في هذه الحالة الـ “الجرسون” هو من يستجيب لطلبات الزبائن فيقوم بتنفيذها من المطبخ .

11193280_659623484139506_1293832343029dd915339_n - Copy

وكذلك الأنترنت فهو مبني اساساً على الطلب Request ( من طرف المستخدم ) و الاستجابة Response ( من طرف الخادم ) ، وابسط انواع الطلب هو كتابة عنوان موقع ( Domain ) .

إذاً عنوان الموقع هو عبارة عن طلب يذهب للسيرفر من خلال آلية معدة مسبقا تسمى البروتوكل وفي حالتنا البروتوكل الشائع هو http حيث يشكل طلب محمل ببعض البيانات الإضافية مثل نوع المتصفح وعنوان المستخدم و غيره ويرسله إلى السيرفر الذي يستضيف عنوان الموقع و يستقبله هذا الخادم ويقوم بتشكيل استجابة محملة ببعض البيانات ومنها كود الصفحة الرئيسية للموقع  ويعيده إلى المرسل فيستقبله المتصفح ويترجمه إلى ما يناسب فتظهر الصفحة للمستخدم .

11193280_659623484139506_129383234306529dd915339_n

الـ API  بأبسط تعبير  هو عبارة عن وسيط بين المطورين و الخدمات التي تقدمها شركة ، وهناك بعض الأمثلة لتتضح الصورة :

  • موقع الفيسبوك يوفر API يسهل على المطورين الوصول الى المستخدمين مثل اسمه ، صورته ، عمره ، صورة الغلاف  . . . الخ ، فلو اردت بناء تطبيق او موقع يحتوي على نظام تسجيل و تسجيل دخول ، يمكنك هنا استخدام  API الفيس بوك لتسهل على المستخدمين التسجيل ، وتسجيل الدخول من خلال حسابهم على الفيس بوك ، ، وهنا انت لست متضطر لبناء  كامل سكربت لنظام التسجيل الخاص بك ، لكن هذه الـ API له صلاحيات معينة ، مثلاً  انت كمطورلا تستطيع ان ترى كلمة المرور الخاصة بالمستخدم .
  • لو اردت بناء برنامج على نظام الويندوز واردت تنفيذ أمر معين لجلب حجم الذاكرة العشوائية RAM ، هنا انت لست مضطر لكاتبة اوامر طويلة تنفذ هذه العملية ، لأن ويندوز توفر لك API جزء منه يقوم بهذه العملية المعقدة
  • واذا اردت بناء موقع او تطبيق يعتمد على تحديد الموقع او الخرائط بحد ذاتها ، فجوجل توفر لك امكانية عمل مثل هذه الأمور من خلال الـ API الخاص بها

في النهاية ، الـ API ليس متوقف فقط على الشركات الكبيرة فإمكانك انت ان تبني API خاص بك وتستعمله أين ما اردت ، مثلاً اذا اردت ان تفحص الاتصال بالانترنت في كل جزء من برنامجك فما عليك الا ان تضع هذا الأمر في Class ما وتستدعيه اينما اردت تنفيذ هذا الأمر ، فبالعادة يقوم المطورين ببناء Class يسمى Helper Class يتكون من جميع الأوامر التي يمكن ان تستدعى كثيراً في المشروع .

عن الكاتب

خالد محمد

خالد محمد يوسف 19 عام طالب جامعي مبرمج ومهتم بلغة الجافا وكل ما يخص الأندرويد / مصمم و ممنتج جرافيكي لبرامج عالية المستوى مهتم ايضاً في مجال التقنية بشكل عام منشأ للموقع الالكتروني و المجموعة من بدايتها و أحد أعضاء المجموعة و القائمين عليها .

  • Reem AlShanbari

    شكرا