شارك المقال 👈

Share on facebook
Share on twitter
Share on linkedin
Share on pocket

المصطلح API هو اختصار، وهو يرمز إلى “Application Programming Interface”. أي الواجهة البرمجية للتطبيق، انظر لها  كقائمة في مطعم، توفر قائمة بالأطباق التي يمكنك طلبها، بالإضافة إلى وصف لكل طبق. عند تحديد عناصر من هذه القائمة، يقوم مطبخ المطعم بالعمل ويقدم لك بعض الأطباق الجاهزة، أنت لا تعرف بالضبط كيف يقوم المطعم بإعداد هذا الطعام، ولا تحتاج الى أن تعرف ذلك حقًا.

وبالمثل، تعرض الواجهة البرمجية للتطبيق (API) مجموعة من العمليات التي يمكن للمطورين استخدامها، بالإضافة إلى وصف لما يفعلونه. لا يحتاج مطور البرامج بالضرورة إلى معرفة كيف يقوم نظام تشغيل، على سبيل المثال، بإنشاء مربع حوار “حفظ باسم” وتقديمه،  يحتاجون فقط إلى معرفة أنه متاح للاستخدام في تطبيقهم.

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

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

استخدامات API

  • واجهات برمجة التطبيقات API  تجعل حياة المطوريين أسهل.

لنفترض أنك تريد تطوير تطبيق لجهاز iPhone، يوفر نظام التشغيل iOS من Apple عددًا كبيرًا من واجهات برمجة التطبيقات، كما يفعل كل نظام تشغيل آخر، لتسهيل الأمر عليك.

إذا كنت ترغب في تضمين متصفح ويب لعرض صفحة ويب واحدة أو أكثر، على سبيل المثال، لن تحتاج إلى برمجة متصفح الويب الخاص بك من الصفر من أجل التطبيق الخاص بك، يمكنك استخدام WKWebView API لتضمين كائن مستعرض WebKit (Safari) في التطبيق الخاص بك.

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

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

  • التحكم في الوصول إلى الموارد عن طريق API

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

على سبيل المثال، إذا كنت قد زرت موقعًا على الويب ورأيت رسالة في متصفحك تفيد بأن موقع الويب يطلب معرفة موقعك الدقيق، فإن موقع الويب هذا يحاول استخدام واجهة برمجة التطبيقات للموقع الجغرافي في متصفح الويب لديك، تعرض مستعرضات الويب واجهات برمجة التطبيقات مثل هذه لجعل من السهل لمطوري الويب الوصول إلى موقعك، يمكنهم فقط السؤال “أين أنت؟” ويقوم المتصفح بالعمل للوصول إلى GPS أو شبكات Wi-Fi المجاورة للعثور على موقعك الفعلي.

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

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

تمتلك أنظمة الملفات التي تستخدم الأذونات – كما تفعل في أنظمة التشغيل Windows و Mac و Linux – تلك الأذونات التي تفرضها واجهة برمجة التطبيقات لنظام الملفات، ولا يمتلك التطبيق النموذجي إمكانية الوصول المباشر إلى القرص الثابت الفعلي، بدلاً من ذلك، يجب على التطبيق الوصول إلى الملفات من خلال واجهة برمجة التطبيقات.

  • تستخدم API للاتصال بين الخدمات المختلفة

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

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

ينطبق هذا على العديد من الخدمات المختلفة عبر الإنترنت؛ فهناك واجهات برمجة التطبيقات لطلب ترجمة نصية من خدمة الترجمة من Google، أو تضمين تعليقات على Facebook أو تغريدات من Twitter على موقع ويب.

أخيرًا، لديك الآن فكرة أفضل عن ما هي واجهة برمجة التطبيقات API.  في النهاية، لست بحاجة إلى معرفة ما هي واجهة برمجة التطبيقات ما لم تكن مطورًا، ولكن إذا رأيت نظامًا أساسيًا أو خدمة قد أضافت واجهات برمجة تطبيقات جديدة لمختلف الأجهزة أو الخدمات، فيجب أن يكون من السهل على المطورين الاستفادة من هذه الميزات.1

المراجع

  • 1 CHRIS HOFFMAN ، What Is an API?، من موقع: www.howtogeek.com، اطّلع عليه بتاريخ 9-2-2019