دعم API ماذا. ما هو API في تطبيقات الويب ولماذا هو مطلوب؟

26.06.2019

حسب التعريف من ويكيبيديا، واجهة برمجة التطبيقات (API) عبارة عن مجموعة من الفئات والإجراءات والوظائف والهياكل والثوابت الجاهزة التي يوفرها تطبيق (مكتبة، خدمة) للاستخدام في منتجات البرامج الخارجية. يستخدمه المبرمجون لكتابة كافة أنواع التطبيقات.

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

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

هذا هو المكان الذي ستساعدنا فيه واجهة برمجة التطبيقات (API). بدلاً من منح حق الوصول إلى قاعدة البيانات، سنقوم ببساطة بإنشاء واجهة برمجة التطبيقات (API) التي من خلالها ستتلقى المتاجر الشريكة المعلومات. بهذه الطريقة، لن يعمل سوى البرنامج النصي API الخاص بنا مع قاعدة البيانات، وستعمل المتاجر مع هذا البرنامج النصي.

كيف تعمل؟
على سبيل المثال، يرسل أحد المتاجر طلبًا إلى واجهة برمجة التطبيقات (API) الخاصة بنا
http://ourapi.com/get_books?limit=20
وتدرك واجهة برمجة التطبيقات (API) الخاصة بنا أنها بحاجة إلى تقديم قائمة بالكتب تتكون من 20 نسخة، لأننا تجاوزنا معلمة الحد التي تساوي 20. يقدم البرنامج النصي (API) الخاص بنا طلبًا إلى قاعدة البيانات، ويتلقى قائمة بالكتب ويعيدها إلى store (في الواقع، يتم عرضه فقط) بتنسيق محدد. يمكن أن يكون التنسيق الذي تُرجع به واجهة برمجة التطبيقات (API) المعلومات أي شيء على الإطلاق، والشيء الرئيسي هو أن متاجرنا تفهمها. يمكن أن يكون هذا JSON أو مصفوفة متسلسلة أو XML. لم يعد هذا مهمًا، الشيء الرئيسي هو أن تفهم المبدأ.

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

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

من أجل تسهيل عمل زملائهم وتزويد جميع برامج Windows بواجهة عالمية، أنشأ مبرمجو Microsoft شيئًا مثل API - "واجهة برمجة التطبيقات".

هذه مجموعة من الوظائف والإجراءات التي يمكن أن تستخدمها البرامج في أغلب الأحيان: عرض شجرة الدليل، والبحث عن الملفات، وعرض نافذة قياسية بأزرار الإغلاق والتصغير والتكبير، وغيرها الكثير. نتيجة لذلك، لا يتعين على المطور الذي يقوم بإنشاء برنامج لنظام التشغيل Windows التفكير في إجراءات فرعية خاصة وتطويرها لعرض نافذة البرنامج، ونافذة اختيار المجلد وغيرها من العمليات الأولية المماثلة - يمكنه ببساطة الاتصال بـ kernel32.dll أو user32.dll من المكتبات التي تحتوي على وظائف وإجراءات API، الوظيفة التي يحتاجها، وستقوم بكل شيء بنفسها. هناك العديد من هذه الوظائف والإجراءات - حوالي 600.

في نظام التشغيل MS-DOS لم يكن هناك شيء اسمه واجهة برمجة التطبيقات (API) - كان الشخص الذي تولى كتابة برنامج لنظام التشغيل هذا ملزمًا بالتفكير في طرق وتنفيذ طرق عرض الصور على الشاشة، وتلقي البيانات من المستخدم، من من البداية إلى النهاية، السفر عبر نظام الملفات، ورسم الرسومات، إذا كان هذا الاحتمال ضروريًا 2. وهذا ما جعل عملية تطوير البرامج ذات الواجهة سهلة الاستخدام عملية كثيفة العمالة للغاية، وفي كثير من الأحيان كان الوقت والجهد المبذول في إنشاء واجهة رسومية مقبولة للبرنامج يتجاوز تكاليف تنفيذ الخوارزمية الخاصة بالبرنامج، والتي تم إنشاؤها من أجلها؛ . لا عجب أن ما يسمى بتطبيقات "وحدة التحكم" كانت شائعة جدًا، أي البرامج التي تعمل فقط من سطر الأوامر، بدون واجهة - تم إدخال البيانات في نفس سطر الأوامر أو تم إنشاؤها من ملف محدد فيه، وتم إخراج النتائج في وضع النص البسيط.

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

في لغة Visual Basic for Applications (VBA)، تسمى العديد من الوظائف وإجراءات واجهة برمجة التطبيقات (API) نفسها عندما يتم تنفيذ البرنامج بواسطة المترجم، لذلك ليست هناك حاجة على الإطلاق لاستخدامها لعرض نوافذ إدخال وإخراج النص، ورسم أشكال هندسية على الشاشة. الشاشة والإجراءات البسيطة الأخرى - يستدعيها VBA حسب الحاجة، ويحتاج البرنامج الموجود عليها فقط إلى استخدام الوظائف المناسبة لهذه اللغة. ومع ذلك، في بعض الأحيان تكون هناك حاجة إلى إجراءات معينة لا توجد لها نظائرها في وظائف VBA المضمنة، أو أنها تعمل بشكل غير عقلاني أو ببطء شديد. على سبيل المثال، نافذة اختيار المجلد مع صورة شجرة الدليل (الشكل 5.1) أو برنامج البحث عن الملفات (التناظرية في وظائف VBA - كائن "Application.FileSearch" - يعمل ببطء شديد مع أعداد كبيرة من الملفات). في مثل هذه الحالات، يوفر VBA القدرة على استدعاء وظائف API.

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

في الغالبية العظمى من الحالات، عند البرمجة لـ Office، يمكنك الاستغناء عن استخدام واجهة برمجة التطبيقات (API)، ولكن في بعض الأحيان قد يؤدي مجرد استدعاء وظيفة واجهة برمجة التطبيقات (API) إلى تحقيق النتيجة المرجوة. لنفترض أنك بحاجة إلى التأكد من استدعاء وحدات ماكرو مختلفة عندما تقوم ببساطة بالنقر فوق زر على شريط أدوات Word باستخدام الماوس وعندما تضغط على هذا الزر ومفتاح Shift أو Control في نفس الوقت. إليك مقتطف من التعليمات البرمجية للقيام بذلك:

قم بتعريف الدالة GetAsyncKeyState Lib "user32.dll" (ByVal kState As Long) كعدد صحيح

GetAsyncKeyState (vbKeyShift أو vbKeyControl)

إذا كان GetAsyncKeyState(vbKeyShift) ثم

استدعاء الماكرو 1: الخروج من الفرع

ElseIf GetAsyncKeyState(vbKeyControl) ثم

استدعاء الماكرو 2: الخروج من الفرع

السطر الأول يشبه "حجز" وظيفة API لاستخدامها في برنامج VBA. يمكن ملاحظة أن الدالة GetAsyncKeyState يتم استدعاؤها من المكتبة (ملف يحتوي على برامج مخصصة للاستخدام من قبل البرامج الأخرى فقط) user32.dll، ويتم تمرير رقم المفتاح إلى هذه الوظيفة، وتقوم بإرجاع عدد صحيح (أي 0، إذا لم يتم الضغط على المفتاح مع الرقم المقابل، و -32767 أو 1 إذا تم الضغط عليه). يجب أن تكون أي وظيفة أو إجراء يتم استدعاؤه من مكتبات غير VBA محجوزة باستخدام الأمر Declare.

تعد عبارة vbKeyShift الموجودة في الأمر بديلاً لرمز مفتاح Shift (قيمته 16)، كما أن vbKeyControl، كما يسهل فهمه، بديل لرمز مفتاح التحكم. يبدو أن هيكل عبارات "إذا...ثم" واضح 3، ولكن إذا لم يكن الأمر كذلك، فابحث في تعليمات VBA. أمر الاتصال الموجود قبل اسم الماكرو، كما تتذكر، يعني تشغيله.

هناك مواقع روسية على الإنترنت مخصصة لـ API 4. قم بزيارتهم لمعرفة المزيد حول مجموعة الميزات هذه.

ظهر الإصدار الأول من Android في أكتوبر 2008 - منذ 4 سنوات فقط، وهي فترة ليست طويلة بالنسبة لنظام التشغيل. خلال هذا الوقت، تم بالفعل إصدار أكثر من عشرين تحديثًا. تضمن الجزء الرئيسي من التحديثات عناصر جديدة برمجةواجهه المستخدم ( واجهة برمجة التطبيقات)، والتي يمكن أن تستخدمها التطبيقات لتلبية احتياجاتهم. لكي يعرف إصدار معين من Android ما إذا كان يمكنه تلبية طلبات البرامج لتطبيق معين، تم إدخال ترقيم واجهات البرامج. تم تضمين الرقم الذي يميز إصدار الواجهة في التطبيق نفسه، واستخدمه النظام لتحديد مدى توافق هذا التطبيق مع نفسه. كان هذا الرقم يسمى "مستوى API". يوجد بالفعل 17 مستوى في المجموع، كل مستوى لاحق يتضمن جميع وظائف المستوى السابق ويضيف وظائف جديدة.

لكتابة تطبيق، يتم تثبيت SDK على الكمبيوتر مع نظام البرمجة ( ادوات \ عده تطوير البرمجيات) عبارة عن مجموعة تطوير، الجزء الرئيسي منها عبارة عن مكتبة فئة لمستوى واجهة برمجة التطبيقات (API) المقابل. يحتوي كل مستوى من مستويات واجهة برمجة التطبيقات (API) على مكتبة خاصة به، والتي يستخدم التطبيق وظائفها. إذا استخدمنا مكتبة من المستوى الأول لواجهة برمجة التطبيقات (API) لتطوير تطبيقنا، فلن تكون تحت تصرفنا الوظائف التي ظهرت لاحقًا. إذا استخدمنا مكتبة المستوى الأحدث، فإننا نخاطر بجعل تطبيقنا غير متوافق مع الإصدارات الأقدم من Android إذا استخدمنا فجأة وظيفة لم تكن مدعومة مسبقًا. إذًا كيف يمكنك تحديد مستوى API؟

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

ونتيجة لذلك، نحصل على منهجية تطوير التطبيق التالية:

  1. نحن ندرس الجمهور المستهدف - ما هو إصدار Android المثبت على هواتفهم الذكية. إذا كنا نكتب للجميع، فسيكون من المفيد التعرف على الرسوم البيانية المحدثة باستمرار لاستخدام إصدار واحد أو آخر من النظام على الأجهزة المحمولة: http://developer.android.com/intl/ru/about/ لوحات المعلومات/index.html. اليوم نرى أن الجزء الأكبر موجود بالفعل في مستوى واجهة برمجة التطبيقات (API) 10، ولكن هناك أيضًا أجزاء كبيرة تقع في المستويين 7 و8. ويمكن رؤية الاختلافات في المستويات هنا (http://developer.android.com/intl/ru/guide /topics/manifest/uses-sdk-element.html) من خلال النقر على رقم API المقابل في الجدول.
  2. إذا كنا لا نريد خسارة حوالي 10% من الجمهور، نختار الحد الأدنى لمستوى واجهة برمجة التطبيقات (API) 7. وبخلاف ذلك، يمكننا اختيار مستوى واجهة برمجة التطبيقات (API) 10، وهو ما يقرب من نصف المستخدمين اليوم. قم بتثبيت SDK المطابق للمستوى الأدنى المحدد.
  3. نحدد المستوى المستهدف مساويًا للحد الأدنى ونكتب ونقوم بتجميع برنامج له. نقوم بتشغيله واختباره على محاكي الهاتف الذكي مع تثبيت الحد الأدنى من واجهة برمجة التطبيقات (API).
  4. بعد كتابة البرنامج وتصحيح أخطائه، نقوم بزيادة المستوى المستهدف بمقدار واحد، وتجميع البرنامج ضمن SDK للمستوى المستهدف الجديد واختباره في محاكي هاتف ذكي جديد بالمستوى المناسب. بعد ذلك، نواصل زيادة مستوى واجهة برمجة التطبيقات (API) المستهدف، وتجميع البرنامج واختباره حتى نصل إلى أعلى مستوى لواجهة برمجة التطبيقات (API).
  5. هذا كل شيء، الآن يمكنك نشر البرنامج. عندما يتم إصدار إصدار جديد من Android بمستوى API جديد، سيتم تمكين برنامجنا في وضع التوافق وسيعمل كما كان من قبل. لجعل البرنامج يعمل مباشرة، وليس في وضع التوافق، نأخذ مشروعنا، وقم بتنزيل SDK الجديد لأحدث مستوى لواجهة برمجة التطبيقات (API)، وقم بتجميع التطبيق تحته. سيتم الآن تشغيل التطبيق على النظام الجديد في الوضع العادي، وربما سيبدو مختلفًا بعض الشيء، وفقًا لتقليد الإصدار الجديد من نظام التشغيل. وفي الوقت نفسه، في الإصدارات الأقدم من النظام، يظل التطبيق كما كان.
ونتيجة لذلك، بعد التفكير في الأمر، استقرت على مستوى واجهة برمجة التطبيقات (API) 7. بالإضافة إلى ذلك، عند استخدام بعض الوظائف الجديدة التي ظهرت في واجهات برمجة التطبيقات الأحدث بكثير (على سبيل المثال، الأجزاء)، اقترحت بيئة التطوير نفسها استخدام حزمة توافق خاصة، وإضافته إلى المشروع . ونتيجة لذلك، تمكنت من استخدام بعض الميزات الجديدة من واجهات برمجة التطبيقات الجديدة في الواجهة القديمة. ومع ذلك، هذا موضوع آخر.

وهذا المدى القصير معروف لكل من له أي خبرة في التطوير. ولكن لا يفهم الجميع ما يعنيه هذا بالضبط ولماذا هو مطلوب. مطور بيتر غازاروفتحدث عن واجهة برمجة التطبيقات (API) بكلمات بسيطة على مدونته.

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

شبكة الويب العالمية والخوادم البعيدة

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

عند الدخول إلى شريط عنوان المتصفح www.facebook.comيتم إرسال الطلب المقابل إلى خادم Facebook البعيد. بمجرد أن يتلقى المتصفح الرد، فإنه يفسر الكود ويعرض الصفحة.

في كل مرة يزور فيها المستخدم صفحة ما على الإنترنت، فإنه يتفاعل مع واجهة برمجة التطبيقات (API) الخاصة بالخادم البعيد. واجهة برمجة التطبيقات (API) هي الجزء المكون من الخادم الذي يتلقى الطلبات ويرسل الاستجابات.

API كوسيلة لخدمة العملاء

تقدم العديد من الشركات واجهات برمجة التطبيقات كمنتج جاهز. على سبيل المثال، تبيع شركة Weather Underground إمكانية الوصول إلى واجهة برمجة التطبيقات (API) الخاصة بها للحصول على بيانات الطقس.

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

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

وبدلاً من ذلك، يمكن للمتصفح تقديم طلب إلى واجهة برمجة تطبيقات خادم Google دون المرور عبر خادم الشركة.

كيف تختلف واجهة برمجة تطبيقات تقويم Google عن واجهة برمجة التطبيقات الخاصة بأي خادم بعيد آخر على الشبكة؟

من الناحية الفنية، الفرق هو في شكل الطلب والرد. لإنشاء صفحة ويب كاملة، يتوقع المتصفح استجابة بلغة ترميز HTML، بينما ستعرض واجهة برمجة تطبيقات تقويم Google البيانات بتنسيق مثل JSON.

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

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

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

يقوم العديد من المطورين بتوزيع التطبيق على عدة خوادم، والتي تتفاعل مع بعضها البعض باستخدام واجهة برمجة التطبيقات (API). تسمى الخوادم التي تؤدي وظيفة دعم لخادم التطبيق الرئيسي بالخدمات الصغيرة.

لذا، عندما تقدم شركة ما واجهة برمجة تطبيقات لمستخدميها، فهذا يعني ببساطة أنها أنشأت سلسلة من عناوين URL الخاصة التي تعرض البيانات فقط كاستجابة.

غالبًا ما يمكن إرسال مثل هذه الطلبات عبر المتصفح. نظرًا لأن نقل بيانات HTTP يتم في شكل نص، فسيكون المتصفح قادرًا دائمًا على عرض الاستجابة. على سبيل المثال، من خلال المتصفح، يمكنك الوصول مباشرة إلى واجهة برمجة تطبيقات GitHub (https://api.github.com/users/petrgazarov)، بدون رمز وصول، وتلقي هذه الاستجابة بتنسيق JSON:

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

بعض الأمثلة الأخرى لواجهة برمجة التطبيقات (API).

كلمة "التطبيق" يمكن أن يكون لها معاني مختلفة. في سياق واجهة برمجة التطبيقات، هذا يعني:

  • قطعة من البرمجيات ذات وظيفة محددة،
  • الخادم بأكمله أو التطبيق بأكمله أو مجرد جزء منفصل من التطبيق.

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

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

ربما تكون قد شاهدت المصطلح "API". كثيرًا ما يعلن نظام التشغيل ومتصفح الويب وتحديثات التطبيقات عن واجهات برمجة تطبيقات جديدة للمطورين. ولكن ما هي واجهة برمجة التطبيقات (API)؟

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

مصطلح API هو اختصار ويعني واجهة برمجة التطبيقات.

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

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

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

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

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

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

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

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

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

تتحكم واجهات برمجة التطبيقات في الوصول إلى الموارد

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

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

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

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

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

تُستخدم واجهات برمجة التطبيقات (APIs) للتواصل بين الخدمات

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

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

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

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

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