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

واجهة برمجة تطبيقات الويب هي واجهة برمجة تطبيقات (API) إما لخادم ويب أو متصفح ويب . كمفهوم لتطوير الويب ، يمكن ربطها بجانب عميل تطبيق الويب (بما في ذلك أي أطر عمل ويب قيد الاستخدام). تتكون واجهة برمجة تطبيقات الويب من جانب الخادم من نقطة نهاية واحدة أو أكثر مكشوفة للجمهور لنظام رسائل طلب واستجابة محدد ، يتم التعبير عنه عادةً بتنسيق JSON أو XML عن طريق خادم ويب قائم على HTTP . لا تعتبر واجهة برمجة تطبيقات الخادم (SAPI) واجهة برمجة تطبيقات ويب من جانب الخادم، ما لم يكن من الممكن الوصول إليها علنًا بواسطة تطبيق ويب بعيد.
جانب العميل
واجهة برمجة تطبيقات الويب من جانب العميل هي واجهة برمجة لتوسيع الوظائف داخل متصفح الويب أو عميل HTTP آخر. في الأصل كانت هذه الواجهة في أغلب الأحيان في شكل ملحقات متصفح إضافية أصلية ، إلا أن معظم الإضافات الأحدث تستهدف روابط JavaScript القياسية .
أنشأت مؤسسة Mozilla مواصفات WebAPI الخاصة بها والتي تم تصميمها للمساعدة في استبدال تطبيقات الهاتف المحمول الأصلية بتطبيقات HTML5 . [1] [2]
أنشأت Google بنية Native Client الخاصة بها والتي صُممت للمساعدة في استبدال المكونات الإضافية الأصلية غير الآمنة بملحقات وتطبيقات أصلية آمنة . كما قاموا أيضًا بجعل هذا قابلاً للنقل من خلال استخدام مُجمِّع LLVM AOT المُعدل .
جانب الخادم
تتكون واجهة برمجة تطبيقات الويب من جانب الخادم من نقطة نهاية واحدة أو أكثر مكشوفة للجمهور لنظام رسائل طلب واستجابة محدد ، يتم التعبير عنه عادةً بتنسيق JSON أو XML . يتم عرض واجهة برمجة تطبيقات الويب بشكل شائع من خلال خادم ويب قائم على HTTP .
التطبيقات المختلطة هي تطبيقات ويب تجمع بين استخدام واجهات برمجة تطبيقات ويب متعددة على جانب الخادم. [3] [4] [5] Webhooks هي واجهات برمجة تطبيقات ويب على جانب الخادم تأخذ الإدخال كمعرف مورد موحد (URI) مصمم للاستخدام مثل أنبوب مسمى بعيد أو نوع من الاسترجاع بحيث يعمل الخادم كعميل لإلغاء الرجوع إلى URI المقدم وتشغيل حدث على خادم آخر يتعامل مع هذا الحدث وبالتالي توفير نوع من IPC من نظير إلى نظير .
نقاط النهاية
تعتبر نقاط النهاية جوانب مهمة للتفاعل مع واجهات برمجة تطبيقات الويب من جانب الخادم، حيث تحدد مكان الموارد التي يمكن الوصول إليها بواسطة برامج الطرف الثالث. عادةً ما يكون الوصول عبر URI يتم نشر طلبات HTTP عليه، ومن ثم يُتوقع منه الاستجابة. قد تكون واجهات برمجة تطبيقات الويب عامة أو خاصة، ويتطلب الأخير رمز وصول . [6]
يجب أن تكون نقاط النهاية ثابتة، وإلا فلن يكون من الممكن ضمان الأداء الصحيح للبرامج التي تتفاعل معها. إذا تغير موقع أحد الموارد (ومعه نقطة النهاية)، فسوف يتعطل البرنامج المكتوب مسبقًا، حيث لم يعد من الممكن العثور على المورد المطلوب في نفس المكان. نظرًا لأن مزودي واجهة برمجة التطبيقات ما زالوا يرغبون في تحديث واجهات برمجة تطبيقات الويب الخاصة بهم، فقد قدم العديد منهم نظامًا لإصدارات في URI يشير إلى نقطة نهاية.
الموارد مقابل الخدمات
غالبًا ما تستخدم واجهات برمجة تطبيقات الويب Web 2.0 تفاعلات تعتمد على الآلة مثل REST و SOAP . تستخدم واجهات برمجة تطبيقات الويب RESTful أساليب HTTP للوصول إلى الموارد عبر معلمات مشفرة بعنوان URL، وتستخدم JSON أو XML لنقل البيانات. على النقيض من ذلك، يتم توحيد بروتوكولات SOAP بواسطة W3C وتفرض استخدام XML كتنسيق للحمولة، عادةً عبر HTTP . علاوة على ذلك، تستخدم واجهات برمجة تطبيقات الويب المستندة إلى SOAP التحقق من صحة XML لضمان سلامة الرسالة البنيوية، من خلال الاستفادة من مخططات XML المزودة بمستندات WSDL . تحدد وثيقة WSDL بدقة رسائل XML وارتباطات النقل لخدمة الويب .
التوثيق
تُعد واجهات برمجة تطبيقات الويب من جانب الخادم بمثابة واجهات للعالم الخارجي للتفاعل مع منطق الأعمال. وبالنسبة للعديد من الشركات، فإن منطق الأعمال الداخلي هذا والملكية الفكرية المرتبطة به هي ما يميزها عن الشركات الأخرى، وربما ما يمنحها ميزة تنافسية. فهم لا يريدون الكشف عن هذه المعلومات. ومع ذلك، من أجل توفير واجهة برمجة تطبيقات ويب عالية الجودة، يجب أن يكون هناك مستوى كافٍ من الوثائق. أحد مزودي واجهات برمجة التطبيقات الذي لا يوفر الوثائق فحسب، بل يربط بها أيضًا في رسائل الخطأ الخاصة به هو Twilio . [7]
ومع ذلك، هناك الآن أدلة موثقة لواجهات برمجة تطبيقات الويب الخاصة بخادم الويب. [8]
النمو والتأثير
لقد زاد عدد واجهات برمجة التطبيقات المتاحة على الويب بشكل ثابت على مدار السنوات الماضية، حيث تدرك الشركات فرص النمو المرتبطة بتشغيل منصة مفتوحة يمكن لأي مطور التفاعل معها. يتتبع ProgrammableWeb أكثر من 24000 واجهة برمجة تطبيقات على الويب كانت متاحة في عام 2022، ارتفاعًا من 105 في عام 2005.
أصبحت واجهات برمجة تطبيقات الويب منتشرة في كل مكان. هناك عدد قليل من تطبيقات/خدمات البرامج الرئيسية التي لا تقدم شكلًا من أشكال واجهة برمجة تطبيقات الويب. أحد أكثر أشكال التفاعل مع واجهات برمجة تطبيقات الويب شيوعًا هو من خلال تضمين موارد خارجية، مثل التغريدات وتعليقات Facebook ومقاطع فيديو YouTube وما إلى ذلك. في الواقع، هناك شركات ناجحة للغاية، مثل Disqus ، والتي تتمثل خدمتها الرئيسية في توفير أدوات قابلة للتضمين، مثل نظام التعليقات الغني بالميزات. [9] يستخدم أي موقع ويب من أفضل 100 موقع ويب مصنف على موقع Alexa Internet واجهات برمجة تطبيقات و/أو يوفر واجهات برمجة تطبيقات خاصة به، وهو مؤشر واضح جدًا على النطاق الهائل وتأثير واجهات برمجة تطبيقات الويب ككل. [10]
مع نمو عدد واجهات برمجة التطبيقات المتاحة على الويب، تم تطوير أدوات مفتوحة المصدر لتوفير بحث واكتشاف أكثر تطورًا. يوفر ملف APIs.json وصفًا يمكن قراءته آليًا لواجهة برمجة التطبيقات وعملياتها، كما يوفر المشروع المرتبط APIs.io قائمة عامة قابلة للبحث لواجهات برمجة التطبيقات استنادًا إلى تنسيق بيانات التعريف APIs.json. [11] [12]
عمل
تجاري
تعتمد العديد من الشركات والمؤسسات بشكل كبير على البنية الأساسية لواجهة برمجة التطبيقات على الويب لخدمة عملاء أعمالها الأساسيين. في عام 2014، تلقت Netflix حوالي 5 مليارات طلب واجهة برمجة تطبيقات، معظمها داخل واجهة برمجة التطبيقات الخاصة بها. [13]
حكومي
تجمع العديد من الحكومات كميات كبيرة من البيانات، وتفتح بعض الحكومات الآن إمكانية الوصول إلى هذه البيانات. والواجهات التي يتم من خلالها عادةً إتاحة هذه البيانات هي واجهات برمجة التطبيقات على الويب. وتسمح واجهات برمجة التطبيقات على الويب لأي مطور بالوصول إلى البيانات، مثل "الميزانية والأشغال العامة والجريمة والقانون وغيرها من بيانات الوكالات" [14] بطريقة ملائمة.
مثال
من الأمثلة على واجهات برمجة التطبيقات الشائعة على الويب واجهة برمجة تطبيقات Astronomy Picture of the Day التي تديرها وكالة الفضاء الأمريكية ناسا . وهي واجهة برمجة تطبيقات على جانب الخادم تُستخدم لاسترجاع صور الفضاء أو الصور الأخرى التي تهم علماء الفلك ، والبيانات الوصفية حول الصور.
وفقًا لوثائق واجهة برمجة التطبيقات، [15] تحتوي واجهة برمجة التطبيقات على نقطة نهاية واحدة:
https://api.nasa.gov/planetary/apod
تنص الوثائق على أن نقطة النهاية هذه تقبل طلبات GET . وهي تتطلب قطعة واحدة من المعلومات من المستخدم، وهي مفتاح API ، وتقبل عدة قطع اختيارية أخرى من المعلومات. تُعرف هذه القطع من المعلومات بالمعلمات . تتم كتابة معلمات واجهة برمجة التطبيقات هذه بتنسيق يُعرف باسم سلسلة الاستعلام ، والتي يتم فصلها بعلامة استفهام ( ?) عن نقطة النهاية. تفصل علامة ( &) المعلمات في سلسلة الاستعلام عن بعضها البعض. معًا، تشكل نقطة النهاية وسلسلة الاستعلام عنوان URL الذي يحدد كيفية استجابة واجهة برمجة التطبيقات. يُعرف عنوان URL هذا أيضًا باسم استعلام أو استدعاء API .
في المثال أدناه، يتم إرسال (أو تمرير ) معامِلَين إلى واجهة برمجة التطبيقات عبر سلسلة الاستعلام. الأول هو مفتاح واجهة برمجة التطبيقات المطلوب والثاني هو معامِل اختياري — تاريخ الصورة المطلوبة.
https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY&date=1996-12-03
ستؤدي زيارة عنوان URL أعلاه في متصفح الويب إلى بدء طلب GET، واستدعاء واجهة برمجة التطبيقات وإظهار نتيجة للمستخدم، والمعروفة باسم قيمة الإرجاع أو return . تعيد واجهة برمجة التطبيقات هذه تنسيق JSON ، وهو نوع من تنسيق البيانات المقصود أن يفهمه الكمبيوتر، ولكنه سهل القراءة إلى حد ما بالنسبة للإنسان أيضًا. في هذه الحالة، يحتوي تنسيق JSON على معلومات حول صورة لنجم قزم أبيض :
{
"date" : "1996-12-03" , "explanation" : "مثل الفراشة، يبدأ نجم قزم أبيض حياته بخلع شرنقته التي كانت تغلفه. ولكن في هذا القياس، تكون الشمس عبارة عن يرقة، ويصبح الغلاف الغازي المنبعث أجمل ما يكون! تحتوي الشرنقة أعلاه، السديم الكوكبي المسمى NGC 2440، على أحد أكثر نجوم الأقزام البيضاء حرارةً على الإطلاق. يمكن رؤية القزم الأبيض كنقطة مضيئة بالقرب من مركز الصورة. ستصبح شمسنا في النهاية "فراشة قزم أبيض"، ولكن ليس قبل 5 مليارات سنة أخرى. دخلت الصورة الملونة الزائفة أعلاه مؤخرًا المجال العام وتم معالجتها لاحقًا بواسطة F. Hamilton . "https://apod.nasa.gov/apod/image/9612/ngc2440_hst2_big.jpg" ، "media_type" : "image" ، "service_version" : " v1" ، "title" : "شرنقة قزم أبيض جديد\r\nمصدر الصورة:" ، "url" : "https://apod.nasa.gov/apod/image/9612/ngc2440_hst2.jpg"
تمت إعادة تنسيق إرجاع واجهة برمجة التطبيقات أعلاه بحيث تظهر أسماء عناصر بيانات JSON، المعروفة باسم المفاتيح ، في بداية كل سطر. urlيشير آخر هذه المفاتيح، المسمى ، إلى عنوان URL يشير إلى صورة فوتوغرافية:
https://apod.nasa.gov/apod/image/9612/ngc2440_hst2.jpg
باتباع عنوان URL أعلاه، سيشاهد مستخدم متصفح الويب هذه الصورة:
على الرغم من أنه يمكن للمستخدم النهائي استدعاء هذه الواجهة البرمجية باستخدام متصفح ويب (كما في هذا المثال)، إلا أنه من المفترض أن يتم استدعاؤها تلقائيًا بواسطة برنامج أو بواسطة مبرمجي الكمبيوتر أثناء كتابة البرامج. من المفترض أن يتم تحليل JSON بواسطة برنامج كمبيوتر، والذي سيستخرج عنوان URL للصورة والبيانات الوصفية الأخرى. يمكن تضمين الصورة الناتجة في موقع ويب، أو إرسالها تلقائيًا عبر رسالة نصية، أو استخدامها لأي غرض آخر يتصوره مطور برامج.
انظر أيضا
- واجهة برمجة التطبيقات
- صفحة ويب ديناميكية
- نظرة عامة على لغات وصف واجهة برمجة التطبيقات RESTful
- استراحة
- جرافكيو ال
- خدمة الويب
مراجع
- ^ "Mozilla's WebAPI Wants to Replace Native Apps With HTML5 | Webmonkey | Wired.com". 2013-12-05. مؤرشف من الأصل في 2013-12-05 . تم الاسترجاع 2022-01-13 .
- ^ ويكي ويب موزيلا
- ^ "ما هو المزج؟ - تعريف من موقع WhatIs.com". WhatIs.com . مؤرشف من الأصل في 24 أبريل 2015 . تم الاسترجاع في 2015-11-04 .
- ^ "Mashup Dashboard". ProgrammableWeb.com. 2009. مؤرشف من الأصل في 7 مايو 2021. تم الاسترجاع في 29 مايو 2021 .
- ^ Maximilien, E. Michael; Ranabahu, Ajith; Gomadam, Karthik (Sep–Oct 2008). "An Online Platform for Web APIs and Service Mashups". IEEE Internet Computing . 12 (5): 32–43. doi :10.1109/MIC.2008.92. S2CID 14949046.
- ^ "التغييرات القادمة في الإصدار 1.1 من واجهة برمجة تطبيقات Twitter".
- ^ Mulloy, Brian. Web API Design – Crafting Interfaces that Developers Love (PDF) . apigee. ص 11.
- ^ "دليل واجهة برمجة التطبيقات". ProgrammableWeb . تم الاسترجاع في 2015-11-03 .
- ^ "Disqus – مجتمع المجتمعات على شبكة الإنترنت". Disqus . تم الاسترجاع في 2015-11-04 .
- ^ "أفضل 500 موقع عالمي حسب تصنيف أليكسا". www.alexa.com . تم الاسترجاع في 2015-11-04 .
- ^ "APIs.json" .apisjson.org . تم الاسترجاع في 2016-03-14 .
- ^ "APIs.io - محرك بحث API". apis.io . تم الاسترجاع في 2016-03-14 .لذا اجعل الأمر مفهومًا بشكل واضح وشارك معرفتك.
- ^ "أهم 10 دروس مستفادة من واجهة برمجة تطبيقات Netflix - OSCON 2014، الشريحة 73". 2014-07-24.
{{cite journal}}: تتطلب المجلة الاستشهاد بها|journal=( مساعدة ) - ^ "اتجاهات التكنولوجيا 2015، اقتصاد واجهة برمجة التطبيقات". مطبعة جامعة ديلويت . تم الاسترجاع في 2015-11-03 .
- ^ "صورة فلكية اليوم". واجهات برمجة تطبيقات ناسا .
قراءة إضافية
- جاكوبسون، دانييل؛ وودز، دان؛ برايل، جريج (نوفمبر 2011). واجهات برمجة التطبيقات: دليل استراتيجي . سيباستوبول، كاليفورنيا: أوريلي ميديا . رقم ISBN 978-1-4493-0892-6.
- مولوي، بريان. تصميم واجهة برمجة التطبيقات على الويب - صياغة واجهات يحبها المطورون (ملف PDF) . Apigee.
- "واجهات برمجة التطبيقات على الويب". Google Chrome .
- "مرجع واجهة برمجة التطبيقات على الويب - مرجع تكنولوجيا الويب". شبكة مطوري موزيلا . 20 فبراير 2023.
- "عرض توضيحي لواجهة برمجة التطبيقات على الويب". عرض توضيحي لواجهة برمجة التطبيقات على الويب .
