ما هي API؟
من المحتمل أنك رأيت مصطلح "API" يظهر. غالبًا ما يعلن نظام التشغيل ومتصفح الويب وتحديثات التطبيقات عن واجهات برمجة تطبيقات جديدة للمطورين. ولكن ما هو API؟
واجهة برمجة تطبيق
مصطلح API هو اختصار ، وهو يرمز إلى "واجهة برمجة التطبيقات".
فكر في API مثل قائمة طعام في مطعم. توفر القائمة قائمة بالأطباق التي يمكنك طلبها ، إلى جانب وصف كل طبق. عندما تحدد عناصر القائمة التي تريدها ، يقوم مطبخ المطعم بالعمل ويوفر لك بعض الأطباق الجاهزة. أنت لا تعرف بالضبط كيف يعد المطعم هذا الطعام ، ولا تحتاج حقًا إلى ذلك.
وبالمثل ، تسرد واجهة برمجة التطبيقات مجموعة من العمليات التي يمكن للمطورين استخدامها ، إلى جانب وصف لما يفعلونه. لا يحتاج المطور بالضرورة إلى معرفة كيفية قيام نظام التشغيل ، على سبيل المثال ، بإنشاء مربع حوار "حفظ باسم" وتقديمه. يحتاجون فقط إلى معرفة أنه متاح للاستخدام في تطبيقاتهم.
هذا ليس استعارة مثالية ، حيث قد يضطر المطورون إلى تقديم بياناتهم الخاصة إلى واجهة برمجة التطبيقات للحصول على النتائج ، لذلك ربما يكون الأمر أشبه بمطعم فاخر حيث يمكنك توفير بعض المكونات الخاصة بك التي سيعمل بها المطبخ.
لكنها دقيقة بشكل عام. تسمح واجهات برمجة التطبيقات للمطورين بتوفير الوقت من خلال الاستفادة من تطبيق النظام الأساسي للقيام بالعمل الجاد. يساعد هذا في تقليل مقدار التعليمات البرمجية التي يحتاجها مطورو البرامج ، كما يساعد في إنشاء المزيد من الاتساق عبر التطبيقات لنفس النظام الأساسي. يمكن لواجهات برمجة التطبيقات التحكم في الوصول إلى موارد الأجهزة والبرامج.
واجهات برمجة التطبيقات تجعل الحياة أسهل للمطورين
لنفترض أنك تريد تطوير تطبيق لجهاز iPhone. يوفر نظام التشغيل iOS من Apple عددًا كبيرًا من واجهات برمجة التطبيقات - كما يفعل أي نظام تشغيل آخر - لتسهيل ذلك عليك.
إذا كنت ترغب في تضمين مستعرض ويب لإظهار صفحة ويب واحدة أو أكثر ، على سبيل المثال ، فلن تضطر إلى برمجة متصفح الويب الخاص بك من البداية فقط لتطبيقك. يمكنك استخدام WKWebView API لتضمين كائن متصفح WebKit (Safari) في تطبيقك.
إذا كنت ترغب في التقاط صور أو مقاطع فيديو من كاميرا iPhone ، فلن تضطر إلى كتابة واجهة الكاميرا الخاصة بك. يمكنك استخدام واجهة برمجة تطبيقات الكاميرا لتضمين كاميرا iPhone المدمجة في تطبيقك. إذا لم تكن واجهات برمجة التطبيقات (API) موجودة لتسهيل ذلك ، فسيتعين على مطوري التطبيقات إنشاء برامج الكاميرا الخاصة بهم وتفسير مدخلات أجهزة الكاميرا. لكن مطوري أنظمة تشغيل Apple قاموا بكل هذا العمل الشاق حتى يتمكن المطورون فقط من استخدام واجهة برمجة تطبيقات الكاميرا لتضمين كاميرا ، ثم متابعة بناء تطبيقاتهم. وعندما تعمل Apple على تحسين واجهة برمجة تطبيقات الكاميرا ، ستستفيد جميع التطبيقات التي تعتمد عليها من هذا التحسين تلقائيًا.
هذا ينطبق على كل منصة. على سبيل المثال ، هل تريد إنشاء مربع حوار على Windows؟ هناك API لذلك. هل تريد دعم مصادقة بصمات الأصابع على Android؟ هناك أيضًا واجهة برمجة تطبيقات لذلك ، لذا لن تضطر إلى اختبار مستشعر بصمات الأصابع الخاص بكل مصنع Android. لا يتعين على المطورين إعادة اختراع العجلة مرارًا وتكرارًا.
تتحكم واجهات برمجة التطبيقات في الوصول إلى الموارد
تُستخدم واجهات برمجة التطبيقات أيضًا للتحكم في الوصول إلى الأجهزة ووظائف البرامج التي قد لا يكون لدى التطبيق بالضرورة إذن لاستخدامها. لهذا السبب غالبًا ما تلعب واجهات برمجة التطبيقات دورًا كبيرًا في الأمان.
ذات صلة: كيفية منع مواقع الويب من السؤال عن موقعك
على سبيل المثال ، إذا سبق لك زيارة موقع ويب ورأيت رسالة في متصفحك تفيد بأن موقع الويب يطلب معرفة موقعك بدقة ، فإن موقع الويب هذا يحاول استخدام واجهة برمجة تطبيقات تحديد الموقع الجغرافي في متصفح الويب الخاص بك. تعرض متصفحات الويب واجهات برمجة تطبيقات مثل هذه لتسهيل وصول مطوري الويب إلى موقعك - يمكنهم فقط أن يسألوا "أين أنت؟" ويقوم المتصفح بالعمل الشاق للوصول إلى GPS أو شبكات Wi-Fi القريبة للعثور على موقعك الفعلي.
ومع ذلك ، تعرض المتصفحات أيضًا هذه المعلومات عبر واجهة برمجة التطبيقات لأنه من الممكن التحكم في الوصول إليها. عندما يريد أحد مواقع الويب الوصول إلى موقعك الفعلي بالضبط ، فإن الطريقة الوحيدة للحصول عليه هي عبر واجهة برمجة تطبيقات الموقع. وعندما يحاول أحد مواقع الويب استخدامه ، يمكنك أنت - المستخدم - اختيار السماح أو رفض هذا الطلب. الطريقة الوحيدة للوصول إلى موارد الأجهزة مثل مستشعر GPS هي من خلال واجهة برمجة التطبيقات ، بحيث يمكن للمتصفح التحكم في الوصول إلى الأجهزة وتحديد ما يمكن للتطبيقات القيام به.
يتم استخدام هذا المبدأ نفسه في أنظمة تشغيل الأجهزة المحمولة الحديثة مثل iOS و Android ، حيث تمتلك تطبيقات الأجهزة المحمولة أذونات يمكن فرضها من خلال التحكم في الوصول إلى واجهات برمجة التطبيقات. على سبيل المثال ، إذا حاول أحد المطورين الوصول إلى الكاميرا عبر واجهة برمجة تطبيقات الكاميرا ، فيمكنك رفض طلب الإذن ولن يكون لدى التطبيق أي طريقة للوصول إلى كاميرا جهازك.
أنظمة الملفات التي تستخدم الأذونات — كما هو الحال في أنظمة التشغيل Windows و Mac و Linux — يتم فرض هذه الأذونات بواسطة واجهة برمجة تطبيقات نظام الملفات. لا يمتلك التطبيق النموذجي وصولاً مباشرًا إلى القرص الثابت المادي الخام. بدلاً من ذلك ، يجب أن يصل التطبيق إلى الملفات من خلال واجهة برمجة التطبيقات.
تُستخدم واجهات برمجة التطبيقات للاتصال بين الخدمات
يتم استخدام واجهات برمجة التطبيقات لجميع أنواع الأسباب الأخرى أيضًا. على سبيل المثال ، إذا سبق لك أن رأيت كائن خرائط Google مضمنًا على موقع ويب ، فإن موقع الويب هذا يستخدم واجهة برمجة تطبيقات خرائط Google لتضمين تلك الخريطة. تعرض Google واجهات برمجة التطبيقات مثل هذا لمطوري الويب ، الذين يمكنهم بعد ذلك استخدام واجهات برمجة التطبيقات لوضع الكائنات المعقدة مباشرة على موقع الويب الخاص بهم. إذا لم تكن واجهات برمجة التطبيقات مثل هذه موجودة ، فقد يضطر المطورون إلى إنشاء خرائطهم الخاصة وتقديم بيانات الخرائط الخاصة بهم فقط لوضع خريطة تفاعلية صغيرة على موقع ويب.
ولأنها واجهة برمجة تطبيقات ، يمكن لـ Google التحكم في الوصول إلى خرائط Google على مواقع الويب التابعة لجهات خارجية ، مما يضمن استخدامها بطريقة متسقة بدلاً من محاولة تضمين إطار يعرض موقع خرائط Google ، على سبيل المثال.
هذا ينطبق على العديد من الخدمات المختلفة عبر الإنترنت. هناك واجهات برمجة تطبيقات لطلب ترجمة نصية من ترجمة Google ، أو تضمين تعليقات Facebook أو تغريدات من Twitter على موقع ويب.
ذات صلة: ما هو بروتوكول OAuth؟ كيف تعمل أزرار تسجيل الدخول إلى Facebook و Twitter و Google
يحدد معيار OAuth أيضًا عددًا من واجهات برمجة التطبيقات التي تسمح لك بتسجيل الدخول إلى موقع ويب باستخدام خدمة أخرى - على سبيل المثال ، لاستخدام حسابات Facebook أو Google أو Twitter لتسجيل الدخول إلى موقع ويب جديد دون إنشاء حساب مستخدم جديد لهذا الموقع فقط . واجهات برمجة التطبيقات (API) هي عقود قياسية تحدد كيفية تواصل المطورين مع الخدمة ، ونوع المخرجات التي يتوقع هؤلاء المطورون الحصول عليها مرة أخرى.
إذا كنت قد مررت بهذا ، فستكون لديك فكرة أفضل عن ماهية API. في النهاية ، لا تحتاج حقًا إلى معرفة ماهية واجهة برمجة التطبيقات إلا إذا كنت مطورًا. ولكن إذا رأيت أن نظامًا أساسيًا أو خدمة برمجية قد أضافت واجهات برمجة تطبيقات جديدة لمختلف الأجهزة أو الخدمات ، فيجب أن يكون من الأسهل على المطورين الاستفادة من هذه الميزات.
حقوق الصورة: patpitchaya / Shutterstock.com.