تعريف واجهة التطبيقات و أمثلة عليها
هل سمعت كلمة API وتساءلت ما هذا؟ هل لديك فكرة غامضة عما قد تفعله بواجهة برمجة التطبيقات؟ هيا نكتشف!
API تقف على واجهة برمجة التطبيقات. بشكل أساسي ، تعد واجهات برمجة التطبيقات مجموعة من الوظائف والإجراءات التي تسمح بإنشاء التطبيقات التي تصل إلى البيانات والميزات الخاصة بالتطبيقات أو الخدمات أو أنظمة التشغيل الأخرى.
تعمل واجهات برمجة التطبيقات الجيدة على تسهيل تطوير برنامج كمبيوتر من خلال توفير جميع اللبنات الأساسية ، والتي يتم تجميعها بعد ذلك بواسطة المبرمج “.
المصطلحات الأكثر شيوعًا بواجهة برمجة التطبيقات
ماهو API وما فائدته ؟
لعلك تتسأل ماهو API ؟ API او Application Programming Interface وباللغة العربية واجهة برمجة التطبيقات. API ببساطة هى نقطة الوصل بين بيئة تطويرية معينة والمطورين , حتى تتيح لهؤلاء المطورين الاستفادة من خدامات هذه البيئة بدون الحاجة إلى بناء كل شئ من الصفر . وبشكل عام هدف API هو اخفاء التفاصيل Encapsulation و ابراز طريقة الاستفادة من الكود .
مثال من الواقع لتقريب الفكرة , عندم تنتج شركات محركات سيارات محرك جديد فانها تقوم بتغليف هذا المحرك وتقوم بطرحه بالسوق لتستفيد منه الشركات لبناء منتاجاتها الخاصة كالسيارات مثلا وقد تستخدمه الشركة بدون الدخول فى تفاصيل تصنيعه فما يهم الشركة هو كيف تستخدم المحرك لبناء منتجها وليس كيف صُنع المحرك .
هذا بالضبط ما يحدث فى البرمجة عندما نستخدم كلاس او دالة او Plugin فى مشروعنا , فما يهمنا فعلًا هو كيف نستخدمه ليخدم مشروعنا وليس كيفية عمله .
وإليك بعض الامثلة عن API
يوجد الكثير من الامثلة API’s مشهورة نصادفها كل يوم مثلا الفيسبوك يتيح API للمواقع لتسجيل الدخول عن طريقه بدون الحاجة إلى بناء نظام تسجيل دخول من الصفر , فانت عندما تريد اضافة هذه الاضافة إلى موقعك لن تطلع على كيفية بنائها ولكن ما يهمك كيفية استخدامها لاضافتها لموقعك او تطبيقك , ويوجد الكثير من الامثلة الاخرى لل API مثل خرائط جوجل Google Maps التى تسمح للمطورين بعرض اجزاء من الخرائط لامكان معينة على تطبيقهم او موقعهم .
مثال اخر عندم تقوم بشراء شئ على الانترنت من موقع معين فهذا الموقع يستخدم API الخاصة بشركة VISA ليقوم بالتواصل معه وخصم المال من بطاقتك .
مثال اخر ولكن هذه المرة من تطبيقات سطح المكتب , فاذا اردت بناء برنامج وهذا البرانامج يريد بعض التحكم فى جهاز الكموبيوتر فانه يستخدم API التى توفرها نظم التشغيل للتحكم فى الجهاز بدون الحاجة إلى الكثير من العمل للحصول على هذه الصلاحيات والدخول فى البرمجة في مستويات أدنى وتقوم بإستخدام لغة Assembly او التجميع لكي تقوم بهذه العملية .
مثال اخير MySQL API فى لغة PHP فانت عندم تكتب استعلام مثل :
mysql_query(‘SELECT * FROM tablename’);
فكل ما يهمنا هو ان الدالة للاستعلام من قاعدة البيانات ولكن الكثير من التفاصيل مخبأة عن المطورين
للتعرف اكثر على قواعد البيانات يمكنك متابعة المقالة هنا
للتعرف اكثر على PHP يمكنك متابعة المقالة هنا
أمثلة عملية على API’s
Google API’s : حيث توفر جوجل مجموعة كبيرة من واجهات البرمجة مثل خدامات الترجمة Google Translate API وخدامات الخرائط Google Maps API واليوتيوب YouTube API.
Facebook API’s : يوفر أيضًا الفيسبوك مجموعة من API’s مثل Facebook social graph ويستخدم فى الوصول لمجموعة من البيانات العامة للمستخدمين.
واجهات برمجة تطبيقات REST
تم تصميم خدمات الويب فى الأساس باستخدام SOAP وهو بروتوكول للتواصل بإستخدام بروتوكول HTTP وصيغة XML , على الرغم من ذلك فإن معظم تطبيقات الويب الحديثة تستعمل واجهة البرمجة بإستخدام REST.
تم طرحه فى الأساس عام 2000 على يد Roy Fielding , وهو مجموعة من الهياكل و مبادئ التصميم المستخدمة فى بناء النظم الموزعة وتضمن تواصل هذه النظم وتبادل أي نوع من أنواع البيانات مثل (الصور والفيديوهات وإلخ) ولعل أكثر ما ساهم فى إنتشار REST هو السهولة النسبية فى بناء التطبيقات والمرونة الكبيرة التى يتمتع بها.
في واجهة برمجة تطبيقات REST ، يمكن أن يكون المورد أي شيء تقريبًا ، على سبيل المثال قائمة بالتغريدات على موقع تويتر او حالة الطقس فى بلد معين. كل من هذه الموارد قابل للعنونة ، والذي في حالة واجهات برمجة تطبيقات REST المستندة إلى الويب يكون عنوان URL ،
حينما يقوم المستخدم لل API بطلب العنوان يقوم API بالرد باي نوع من انواع الصيغ مثل JSON او صورة او حتى صفحة Web.
يوفر API ميزة إرسال البيانات للتطبيقات الأخرى ليعالج التطبيق البيانات بالطريقة التى يريدها مما يوفر مرونة كبيرة فى إستخدام البيانات ولكن هذا ايضًا له اثار جانبية حيث أنه ابطئ من حالة معالجة البيانات ثم إرسال المنتج النهائى للمستخدم.