لقد رأيت على الأرجح عبارة "API". غالبًا ما يعلن نظام التشغيل ومستعرض الويب وتحديثات التطبيقات عن واجهات برمجة تطبيقات جديدة للمطورين. لكن ما هو API؟

واجهة برمجة تطبيق

المصطلح API هو اختصار ، وهو يرمز إلى "واجهة برمجة التطبيقات".

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

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

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

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

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

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

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

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

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

التحكم في APIs الوصول إلى الموارد

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

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

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

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

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

وتستخدم APIs للاتصال بين الخدمات

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

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

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

يحدد معيار OAuth أيضًا عددًا من واجهات برمجة التطبيقات التي تسمح لك بتسجيل الدخول إلى موقع ويب باستخدام خدمة أخرى - على سبيل المثال ، لاستخدام حسابات Facebook أو Google أو Twitter لتسجيل الدخول إلى موقع ويب جديد بدون إنشاء حساب مستخدم جديد لهذا الموقع فقط . APIs هي عقود قياسية تحدد كيفية اتصال المطورين بالخدمة ، ونوع الإخراج الذي يتوقع هؤلاء المطورون استلامه.


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

أعلى نصائح:
التعليقات: