ما هي واجهة برمجة التطبيقات؟
- مصطلحات إدارة الهوية والوصول
- ما هي واجهة برمجة التطبيقات؟
يشير API إلى واجهة برمجة التطبيقات، وهي عبارة عن مجموعة من البروتوكولات والإجراءات التي تمكن الأنظمة والتطبيقات المختلفة من التواصل مع بعضها البعض، دون التزام المطورين أو المستخدمين النهائيين بمعرفة كيفية تنفيذها. وهذا يتيح للمطورين إنشاء مكونات برامج قابلة لإعادة الاستخدام.
غالبًا ما يستخدم المطورون واجهات برمجة التطبيقات API للوصول إلى الوظائف التي توفرها خدمة أو تطبيق موجودين بالفعل. على سبيل المثال، يمكن أن تُتيح واجهة برمجة التطبيقات API لتطبيق الطقس إمكانية الوصول إلى أحدث بيانات الطقس من مزود خدمة الطقس. وتحدد واجهة برمجة التطبيقات API تنسيق الطلب الذي يجب أن يستخدمه التطبيق لاسترداد البيانات، بالإضافة إلى تنسيق البيانات التي سيتم إرجاعها بواسطة خدمة الطقس.
كيف تعمل واجهات برمجة التطبيقات API؟
تعمل واجهات برمجة التطبيقات APIs من خلال تحديد مجموعة من القواعد والبروتوكولات التي تتعلق بالتواصل بين مكونات البرنامج. وهي تشمل عادةً مواصفات الإجراءات الروتينية وهياكل البيانات وفئات البنود والمتغيرات. وفيما يلي نبذة عامة عالية المستوى حول كيفية عمل واجهات برمجة التطبيقات APIs:
قام أحد العملاء بعمل طلب. يرسل العميل (الذي يقصد به النظام أو التطبيق) طلبًا إلى خادم واجهة برمجة التطبيقات API يحدد العملية المطلوبة، مثل "استرداد البيانات" أو "إنشاء مورد جديد"، على أن يتضمن الطلب أي معلمات ضرورية ومعلومات المصادقة.
وهنا يعالج خادم واجهة برمجة التطبيقات الطلب. يتلقى خادم واجهة برمجة التطبيقات API الطلب ويعالجه، باستخدام التطبيق والبيانات الأساسية لأداء العملية المحددة.
يرسل خادم واجهة برمجة التطبيقات API ردًا على الطلب. يرسل خادم واجهة برمجة التطبيقات API ردًا إلى العميل، يوضح فيه ما إذا كانت العملية ناجحة أم لا؛ وإذا كانت العملية ناجحة، فإنه يوفر البيانات المتعلقة بالطلب. وسيتم تنسيق الرد وفقًا للمواصفات الخاصة بواجهة برمجة التطبيقات API.
يقوم العمليل بمعالجة الرد الوارد إليه. يتلقى العميل الرد من واجهة برمجة التطبيقات API ويقوم بمعالجة البيانات حسبما يقتضي الأمر، على سبيل المثال، من خلال عرضها للمستخدم.
وبهذه الطريقة، تسمح واجهات برمجة التطبيقات API لمكونات البرامج بالتواصل مع بعضها البعض وتبادل البيانات والوظائف. وتحدد واجهة برمجة التطبيقات API أيضًا قواعد وبروتوكولات الاتصال، بحيث يمكن للأنظمة والتطبيقات المختلفة أن تتفاعل مع بعضها البعض، حتى لو تم تطويرها من قبل مؤسسات أو أفراد مختلفين، على منصات مختلفة، وباستخدام لغات برمجة مختلفة.
ما هي أنواع واجهات برمجة التطبيقات API المختلفة؟
إليكم أكثر أنواع واجهات برمجة التطبيقات API شيوعًا:
واجهات برمجة التطبيقات المفتوحة، والمعروفة أيضًا باسم واجهات برمجة التطبيقات الخارجية أو واجهات برمجة التطبيقات العامة، وتكون متاحة للمطورين وغيرهم من المستخدمين الآخرين بأدنى حد من قيود. وقد تستلزم واجهات برمجة التطبيقات العامة التسجيل أو موافقة التطبيق أو مفتاح واجهة برمجة التطبيقات لمنع سوء الاستخدام.
واجهات برمجة التطبيقات الداخلية، والمعروفة أيضًا باسم واجهات برمجة التطبيقات API الخاصة، وتستخدم لمشاركة الموارد والبيانات داخل شركة أو بين الأنظمة أو التطبيقات المختلفة التي تمتلكها نفس المؤسسة. ولا تُتاح إمكانية الوصول إلى واجهات برمجة التطبيقات الداخلية إلا للمستخدمين داخل مؤسسة معينة ويتم إخفاؤها عن المستخدمين الخارجيين.
واجهات برمجة التطبيقات للشركاء وهي تشبه واجهات برمجة التطبيقات المفتوحة، ولكنها مخصصة للاستخدام من قبل مجموعة محددة من الشركاء الموثوق بهم. وتكون إمكانية الوصول إلى هذا النوع من واجهات برمجة التطبيقات مقيدة بشكل عام وتستلزم الحصول على موافقة مسبقة.
واجهات برمجة التطبيقات المركبة وهي تضم أنواعًا مختلفة من واجهات برمجة التطبيقات لمعالجة حالات الاستخدام المعقدة بشكل خاص. وهذا النوع من الواجهات يمكّن المطورين من استرداد البيانات من مصادر متعددة من خلال استدعاء واحد لواجهة برمجة التطبيقات، مما يبسط عملية الوصول إلى البيانات.
واجهات برمجة التطبيقات لنقل الحالة التمثيلية (REST APIs)، ويستخدم هذا النوع من الواجهات طلبات HTTP للحصول على البيانات ووضعها ونشرها وحذفها. وREST هو أسلوب بنائي يستخدم آليات بسيطة وخفيفة ومرنة لتبادل البيانات بين الأنظمة المختلفة. وتُستخدم واجهات برمجة التطبيقات REST عادةً للتطبيقات والخدمات القائمة على شبكة الويب.
واجهات برمجة التطبيقات ببروتوكول الوصول إلى الكائنات البسيطة (SOAP APIs) وهي طريقة لخدمات الويب القائمة على المعايير والتي تسمح للأنظمة المختلفة بالاتصال عبر الإنترنت. ويستخدم بروتوكول SOAP صيغة XML لتنسيق رسالته ويعتمد على معايير الويب الأخرى للنقل، والتي تشمل HTTP و SMTP.
XML-RPC و JSON-RPC وكلاهما من واجهات برمجة تطبيقات استدعاء الإجراء البعيد (RPC) التي تستخدم XML و JSON، على التوالي، كتنسيقات للبيانات. ويسمح هذا النوع من واجهات برمجة التطبيقات للأنظمة بالاتصال واستدعاء الإجراءات على الأنظمة البعيدة عادةً عبر HTTP.
واجهة برمجة التطبيقات GraphQL ، والتي تم تطويرها بواسطة Facebook، هي معيار جديد لواجهة برمجة التطبيقات لإنشاء واستهلاك واجهات برمجة التطبيقات. ويوفر هذا النوع من الواجهات بديلاً أكثر كفاءة وقوة ومرونة لواجهات برمجة تطبيقات REST التقليدية. وتسمح واجهات برمجة التطبيقات GraphQL لتطبيقات العميل بتحديد بنية البيانات التي تحتاج إليها، يقوم الخادم بإرسال البيانات المطلوبة فقط.
ولا شك أن لكل نوع من أنواع واجهات برمجة التطبيقات API نقاط القوة والضعف الخاصة به، وأن كل نوع يكون ملائم أكثر لكل حالة الاستخدام مخصص لها. ويعتمد اختيار النوع المناسب من واجهة برمجة التطبيقات لمشروع معين على عدة عوامل منها حجم المشروع وتعقيده والجمهور المستهدف ونوع البيانات التي يتم الوصول إليها.
مثال توضيحي لواجهة برمجة التطبيقات API
واجهات برمجة التطبيقات متاحة في كل مكان! وفيما يلي مجرد أمثلة قليلة لها.
تتيح واجهة برمجة تطبيقات خرائط Google للمطورين إضافة وظائف خرائط Google إلى مواقع الويب والتطبيقات الخاصة بهم. وغالبًا ما تستخدم متاجر البيع بالتجزئة واجهة برمجة تطبيقات خرائط Google لاسترداد البيانات لأدلة المتاجر الخاصة بهم عبر الإنترنت.
كذلك، يستخدم بائعو التجزئة واجهة برمجة تطبيقات PayPal لتمكين عملائهم من الدفع باستخدام PayPal.
ومن الأمثلة الأخرى واجهة برمجة التطبيقات الخاصة بـTwitter ، والذي يسمح للمطورين بالوصول إلى بيانات Twitter ووظائفه في تطبيقاتهم الخاصة. وتتيح واجهة برمجة التطبيقات الخاصة بـ Twitter للمطورين استرداد التغريدات ونشر التغريدات وتنفيذ إجراءات أخرى، مثل البحث عن التغريدات ومتابعة المستخدمين.
وتستخدم مواقع السفر واجهات برمجة التطبيقات استخدامًا مكثفًا للسماح للزوار بالبحث عن الرحلات الجوية والإقامة والخدمات الأخرى المتعلقة بالسفر وحجزها.