ما المقصود بواجهة برمجة التطبيقات؟
واجهات برمجة التطبيقات هي آليات تُمكّن اثنين من مكونات البرنامج الاتصال ببعضهما باستخدام مجموعة من التعريفات والبروتوكولات. فعلى سبيل المثال، يحتوي نظام البرامج في مكتب المناخ على بيانات الطقس اليومية. و"يتواصل" تطبيق المناخ على هاتفك مع هذا النظام عبر واجهات برمجة التطبيقات، ويعرض تحديثات حول المناخ يوميًا على هاتفك.
ما المقصود باختصار API؟
يشير الاختصار API إلى واجهة برمجة التطبيقات. وفي سياق واجهات برمجة التطبيقات، تشير كلمة "تطبيق" إلى أي برنامج يتسم بوظيفة متميزة. يمكن اعتبار "الواجهة" بمثابة عقد تبادل خدمات بين تطبيقين. ويحدد هذا العقد طريقة اتصال هذين التطبيقين ببعضهما باستخدام الطلبات والاستجابات. تتضمن وثائق واجهة برمجة التطبيقات معلومات حول طريقة قيام المطورين بتصميم هذه الطلبات والاستجابات.
كيف تعمل واجهات برمجة التطبيقات؟
تتضح بنية واجهة برمجة التطبيقات من حيث العميل والخادم. ويُعرف التطبيق الذي يرسل الطلب باسم العميل، بينما يُعرف التطبيق الذي يرسل الاستجابة باسم الخادم. بالتالي في مثال المناخ أعلاه، يكون الخادم هو قاعدة بيانات المناخ التابعة للمكتب، ويكون العميل هو تطبيق الهاتف المحمول.
تتوفر أربع طرق مختلفة يمكن أن تستخدمها واجهات برمجة التطبيقات في العمل حسب وقت إنشائها وسبب الإنشاء.
واجهات برمجة تطبيقات SOAP
تستخدم واجهات برمجة التطبيقات هذه بروتوكول Simple Object Access Protocol. ويتبادل العميل والخادم الرسائل باستخدام لغة XML. وتُعد واجهة برمجة التطبيقات الأقل مرونة وكانت أكثر شيوعًا في الماضي.
واجهات برمجة تطبيقات RPC
تُعرف واجهات برمجة التطبيقات هذه باسم "استدعاءات الإجراءات عن بُعد". ويُكمل العميل وظيفة (أو إجراء) على الخادم الذي يرسل بدوره المخرجات مرةً أخرى إلى العميل.
واجهات برمجة تطبيقات Websocket
واجهة برمجة تطبيقات Websocket هي تطور آخر لواجهة برمجة تطبيقات الويب الحديثة يستخدم كائنات JSON في إرسال البيانات. وتدعم واجهة برمجة تطبيقات WebSocket الاتصال ثنائي الاتجاه بين تطبيقات العميل والخادم. يمكن للخادم إرسال رسائل الاستدعاء إلى العملاء المتصلين مما يجعله أكثر فعالية من واجهة برمجة تطبيقات REST.
واجهات برمجة تطبيقات REST
تُعد هذه الواجهات هي أكثر واجهات برمجة التطبيقات المتاحة حاليًا على الويب شيوعًا ومرونة. ويرسل العميل الطلبات إلى الخادم كبيانات. ويستخدم الخادم مدخلات العميل هذه لبدء وظائف داخلية وإعادة بيانات المخرجات مرةً أخرى إلى العميل. لنلقِ نظرة تفصيلية على واجهات REST API أدناه.
ما المقصود بواجهات برمجة تطبيقات REST؟
يشير الاختصار REST إلى "نقل الحالة التمثيلية". ويحدد REST مجموعة من الوظائف، مثل GET (الحصول) وPUT (التنظيم) وDELETE (الحذف) وغيرها، يمكن للعملاء استخدامها في الوصول إلى بيانات الخادم. يتبادل العملاء والخوادم البيانات باستخدام بروتوكول HTTP.
تكمن الميزة الرئيسة للواجهة REST API في أنها عديمة الحالة. والمقصود بعديمة الحالة أن الخوادم لا تحفظ بيانات العميل بين الطلبات. تتماثل طلبات العميل المرسلة إلى الخادم مع عناوين URL التي تكتبها في المتصفح لديك لزيارة موقع ويب. وتمثل الاستجابة من الخادم بيانات عادية بدون عرض رسومي نموذجي لصفحة ويب.
ما واجهة برمجة تطبيقات الويب؟
واجهة برمجة تطبيقات الويب أو واجهة برمجة تطبيقات خدمة الويب هي واجهة تعالج التطبيق بين خادم الويب ومتصفح الويب. وكل خدمات الويب هي واجهات برمجة تطبيقات، ولكن ليست كل واجهات برمجة التطبيقات هي خدمات ويب. واجهة برمجة تطبيقات REST هي نوع خاص من واجهة برمجة تطبيقات الويب يستخدم أسلوب الهيكل القياسي الموضح أعلاه.
تختلف المصطلحات المتعلقة بواجهات برمجة التطبيقات مثل واجهة برمجة تطبيقات Java أو واجهات برمجة تطبيقات الخدمات نظرًا إلى أنه تم إنشاء واجهات برمجة التطبيقات قبل شبكة الويب العالمية. وتُعد واجهات برمجة تطبيقات الويب الحديثة هي واجهات برمجة تطبيقات REST، ويمكن استخدام المصطلحات بالتبادل.
ما المقصود بعمليات تكامل واجهة برمجة التطبيقات؟
عمليات تكامل واجهة برمجة التطبيقات هي مكونات البرامج التي تتولى تلقائيًا تحديث البيانات بين العملاء والخوادم. وتتضح بعض الأمثلة على عمليات تكامل واجهة برمجة التطبيقات عند مزامنة البيانات تلقائيًا مع السحابة من معرض الصور بهاتفك، أو مزامنة الوقت والتاريخ تلقائيًا على جهازك اللوحي عندما تسافر إلى بلد يستخدم منطقة زمنية مختلفة. ويمكن أيضًا للمؤسسات استخدامها لأتمتة العديد من وظائف النظام بفعالية.
ما مزايا واجهات برمجة تطبيقات REST؟
توفر واجهات برمجة تطبيقات REST أربع مزايا رئيسة:
1. التكامل
تُستخدم واجهات برمجة التطبيقات لتكامل التطبيقات الجديدة مع أنظمة البرامج الحالية. ويؤدي ذلك إلى زيادة سرعة عملية التطوير نظرًا إلى أنه لا يتعين كتابة كل وظيفة من جديد. يمكنك استخدام واجهات برمجة التطبيقات في الاستفادة من التعليمة البرمجية الحالية.
2. الابتكار
يمكن أن تتغير كل الصناعات بمجرد طرح تطبيق جديد. ويتعين على الشركات الاستجابة بسرعة، ودعم الانتشار السريع للخدمات المبتكرة. ويمكنها القيام بذلك من خلال إجراء التغييرات على مستوى واجهة برمجة التطبيقات بدون الحاجة إلى كتابة التعليمة البرمجية بالكامل مجددًا.
3. التوسع
تتيح واجهات برمجة التطبيقات فرصةً متميزةً للشركات حتى يمكنها تلبية متطلبات عملائها في مختلف المنصات. فعلى سبيل المثال، تسمح واجهة برمجة تطبيقات الخرائط بتكامل معلومات الخرائط عبر مواقع الويب ونظامي Android وiOS وغير ذلك. يمكن لأي شركة منح وصول مشابه إلى قواعد بياناتها الداخلية من خلال استخدام واجهات برمجة تطبيقات مجانية أو مدفوعة.
4. سهولة الصيانة
تعمل واجهة برمجة التطبيقات كبوابة بين نظامين. ويلتزم كل نظام بإجراء تغييرات داخلية بحيث لا تتأثر واجهة برمجة التطبيقات. وبالتالي، لن تتأثر إحدى الجهتين بأي تغييرات تجريها الجهة الأخرى لاحقًا على التعليمة البرمجية.
ما الأنواع المختلفة لواجهات برمجة التطبيقات؟
تخضع واجهات برمجة التطبيقات للتصنيف وفقًا لبنيتها ونطاق استخدامها. ولقد تعرفنا بالفعل على أنواع بنيات واجهة برمجة التطبيقات الرئيسية، ولنلقِ نظرة على نطاق الاستخدام.
واجهات برمجة التطبيقات الخاصة
تُعد هذه الواجهات داخلية وخاصة بأي مؤسسة، وتُستخدم في توصيل الأنظمة والبيانات داخل الشركة فقط.
واجهات برمجة التطبيقات العامة
تُعد هذه الواجهات متاحة ومفتوحة للجمهور، وقد يستخدمها أي شخص. وقد يتطلب هذا النوع من الواجهات بعض الاعتمادات ودفع رسوم، أو قد لا يحتاج إليها.
واجهات برمجة تطبيقات الشركاء
يمكن الوصول إلى هذه الواجهات من جانب مطورين خارجيين معتمدين للمساعدة في إجراء شراكات بين الشركات.
واجهات برمجة التطبيقات المركبة
تجمع هذه الواجهات بين اثنتين أو أكثر من واجهات برمجة التطبيقات المختلفة لتلبية متطلبات أو سلوكيات الأنظمة المعقدة.
ما المقصود بنقطة نهاية واجهة برمجة التطبيقات، وما سبب أهميتها؟
نقاط نهاية واجهات برمجة التطبيقات هي نقاط الاتصال النهائية في نظام اتصال واجهة برمجة التطبيقات. وتتضمن عناوين URL للخادم والخدمات والمواقع الرقمية الخاصة الأخرى حيث يتم إرسال المعلومات وتلقيها بين الأنظمة. تُعد نقاط نهاية واجهة برمجة التطبيقات مهمة للشركات ويرجع ذلك إلى سببين رئيسين وهما:
1. الأمان
تجعل نقاط نهاية واجهة برمجة التطبيقات النظام عرضة للهجمات. وتُعد مراقبة واجهة برمجة التطبيقات مهمة لتجنب سوء استخدامها.
2. الأداء
يمكن أن تؤدي نقاط نهاية واجهات برمجة التطبيقات، وتحديدًا الواجهات التي تتمتع بنسبة استخدام مرتفعة، إلى حدوث عوائق وتؤثر في أداء النظام.
كيف يمكن تأمين واجهة برمجة تطبيقات REST؟
يجب تأمين كل واجهات برمجة التطبيقات من خلال المراقبة والمصادقة المناسبتين. وتتوفر طريقتان رئيستان لتأمين واجهات برمجة تطبيقات REST وهما:
1. رموز المصادقة
تُستخدم هذه الرموز في مصادقة المستخدمين لإجراء استدعاء واجهة برمجة التطبيقات. وتتحقق رموز المصادقة من صحة المستخدمين وحقوق وصولهم لإجراء استدعاء واجهة برمجة التطبيقات المحدد. فعلى سبيل المثال، عند تسجيل دخولك إلى خادم البريد الإلكتروني، يستخدم عميل البريد الإلكتروني رموز مصادقة للاستمتاع بوصول آمن.
2. مفاتيح واجهات برمجة التطبيقات
تتحقق مفاتيح واجهات برمجة التطبيقات من أن البرنامج أو التطبيق يجري استدعاء واجهة برمجة التطبيقات. وتحدد التطبيق وتضمن أن لديه حقوق الوصول اللازمة لإجراء استدعاء واجهة برمجة التطبيقات المحدد. تحقق مفاتيح واجهات برمجة التطبيقات أمانًا أقل من الرموز، ولكنها تسمح بمراقبة واجهة برمجة التطبيقات من أجل تجميع البيانات عند الاستخدام. وربما لاحظت وجود سلسلة طويلة من الحروف والأرقام في عنوان URL للمتصفح عندما تزور مواقع ويب مختلفة. تمثل هذه السلسلة مفتاح واجهة برمجة التطبيقات الذي يستخدمه موقع الويب لإجراء استدعاءات واجهات برمجة تطبيقات داخلية.
كيف يمكن إنشاء واجهة برمجة تطبيقات؟
يجب بذل العناية الواجبة والجهود اللازمة لإنشاء واجهة برمجة تطبيقات سيحتاج مطورون آخرون إلى استخدامها والوثوق بها. وفيما يلي الخطوات الخمس اللازمة لإنشاء تصميم واجهة برمجة تطبيقات بجودة عالية:
1. وضع خطة لتصميم واجهة برمجة التطبيقات
توفر مواصفات واجهة برمجة التطبيقات، مثل OpenAPI، مخططًا لتصميم واجهة برمجة التطبيقات لديك. ومن الأفضل التفكير في حالات استخدام مختلفة مقدمًا، والتأكد من أن واجهة برمجة التطبيقات تلتزم بالمعايير الحالية المعمول بها لتطوير واجهة برمجة التطبيقات.
2. إنشاء واجهة برمجة التطبيقات
ينشئ مصممو واجهة برمجة التطبيقات نموذجًا أوليًا لواجهات برمجة التطبيقات باستخدام تعليمة برمجية معيارية. وبمجرد اختبار النموذج الأولي، يمكن للمطورين تخصيصه ليناسب المواصفات الداخلية.
3. اختبار واجهة برمجة التطبيقات
تتشابه عملية اختبار واجهة برمجة التطبيقات مع عملية اختبار البرامج، ويلزم إجراؤها لتجنب حدوث أي أخطاء أو عيوب. ويمكن استخدام أدوات اختبار واجهة برمجة التطبيقات في تعزيز اختبار واجهة برمجة التطبيقات لمقاومة الهجمات الإلكترونية.
4. توثيق واجهة برمجة التطبيقات
بينما تتسم واجهات برمجة التطبيقات بالوضوح، تُستخدم وثائق واجهة برمجة التطبيقات كدليل لتحسين إمكانية الاستخدام. وتميل واجهات برمجة التطبيقات المدعومة بالوثائق التي توفر مجموعة من الوظائف وحالات الاستخدام إلى أن تكون أكثر شيوعًا في البنية الموجهة نحو الخدمات.
5. تسويق واجهة برمجة التطبيقات
أسواق واجهات برمجة التطبيقات عبارة عن سوق عبر الإنترنت لبيع السلع بالتجزئة تمامًا مثل Amazon، وتتوفر للمطورين لشراء واجهات برمجة التطبيقات الأخرى وبيعها. ويمكن أن يتيح لك عرض واجهة برمجة التطبيقات تحقيق أرباح منها.
ما المقصود باختبار واجهة برمجة التطبيقات؟
تتشابه إستراتيجيات اختبار واجهة برمجة التطبيقات مع مناهج اختبار البرامج الأخرى. ويُعد التحقق من استجابات الخوادم هو مركز الاهتمام الرئيس. ويتضمن اختبار واجهة برمجة التطبيقات:
- إجراء طلبات متعددة لنقاط نهاية واجهة برمجة التطبيقات الخاصة باختبار الأداء.
- كتابة اختبارات للوحدات من أجل التحقق من منطق العمل والسلامة الوظيفية.
- اختبار الأمان من خلال محاكاة هجمات النظام.
كيف يمكن كتابة وثائق واجهة برمجة التطبيقات؟
تُعد كتابة وثائق واجهة برمجة التطبيقات الشاملة جزءًا من عملية إدارة واجهة برمجة التطبيقات. ويمكن إنشاء وثائق واجهة برمجة التطبيقات تلقائيًا باستخدام الأدوات، أو كتابتها يدويًا. وتتضمن بعض أفضل الممارسات:
- كتابة الشروحات باللغة الإنجليزية البسيطة وسهلة القراءة. يمكن أن تستخدم الوثائق التي تم إنشاؤها بواسطة الأدوات أسلوب الإسهاب في الكلام وتحتاج إلى تعديل.
- استخدام عينات من التعليمات البرمجية لشرح الوظيفة.
- الحفاظ على دقة الوثائق وتحديثها.
- استهداف أسلوب الكتابة على مستوى المبتدئين
- تناول كل المشكلات التي يمكن لواجهة برمجة التطبيقات حلها لدى المستخدمين.
كيف يمكن استخدام واجهة برمجة تطبيقات؟
تشمل خطوات تنفيذ واجهة برمجة تطبيقات جديدة:
- الحصول على مفتاح واجهة برمجة تطبيقات. ويمكن إجراء ذلك من خلال إنشاء حساب تم التحقق منه مع موفر واجهة برمجة التطبيقات.
- إعداد عميل واجهة برمجة تطبيقات لبروتوكول HTTP. وتتيح لك هذه الأداة تصميم طلبات واجهة برمجة التطبيقات بسهولة باستخدام مفاتيح واجهات برمجة التطبيقات التي تم تلقيها.
- إذا لم يتوفر لديك عميل واجهة برمجة تطبيقات، يمكنك محاولة تصميم الطلب بنفسك في المتصفح من خلال الإحالة إلى وثائق واجهة برمجة التطبيقات.
- بمجرد أن تشعر بالراحة عند استخدام بنية واجهة برمجة تطبيقات جديدة، يمكنك البدء في استخدامها في تعليمتك البرمجية.
أين يمكنني العثور على واجهات برمجة التطبيقات الجديدة؟
يمكن العثور على واجهة برمجة تطبيقات الويب الجديدة في أسواق واجهات برمجة التطبيقات وأدلة واجهات برمجة التطبيقات. وأسواق واجهات برمجة التطبيقات عبارة عن منصات مفتوحة حيث يمكن لأي شخص عرض واجهة برمجة تطبيقات للبيع. تكون أدلة واجهات برمجة التطبيقات عبارة عن مستودعات خاضعة للرقابة ينظمها مالك الدليل. وقد يتولى مصممو واجهات برمجة التطبيقات من الخبراء تقييم واجهة برمجة تطبيقات جديدة واختبارها قبل إضافتها إلى الدليل.
تتضمن بعض مواقع ويب واجهات برمجة التطبيقات الشائعة:
- واجهة Rapid API – أكبر سوق عالمية لواجهة برمجة التطبيقات تضم أكثر من 10,000 واجهة برمجة تطبيقات ومليون مطور نشط على الموقع. وتسمح واجهة RapidAPI للمستخدمين باختبار واجهات برمجة التطبيقات مباشرة على المنصة قبل الشراء.
- واجهات برمجة التطبيقات العامة – تصنف المنصة واجهات برمجة التطبيقات البعيدة إلى 40 فئة مخصصة ما يجعل من السهل التصفح والعثور على الواجهة التي تلبي احتياجاتك.
- موقعا APIForThat وAPIList – يتضمن موقعا الويب هذان قوائم تضم أكثر من 500 واجهة برمجة تطبيقات للويب، بالإضافة إلى معلومات تفصيلية حول كيفية استخدامهما.
ما المقصود بأداة API gateway؟
تُعد API Gateway هي أداة لإدارة واجهة برمجة التطبيقات مُصممة خصيصًا لعملاء المؤسسة من مستخدمي مجموعة كبيرة من خدمات الخلفية. تتعامل بوابات API gateway عادة مع المهام الشائعة مثل مصادقة المستخدم والإحصاءات وإدارة المعدلات المنطبقة على كل استدعاءات واجهات برمجة التطبيقات.
تُعد Amazon API Gateway خدمةً مُدارةً بالكامل تجعل من السهل على المطورين إنشاء واجهات برمجة التطبيقات ونشرها وصيانتها ومراقبتها وتأمينها في أي نطاق. وتتعامل مع جميع المهام المعنية بقبول الآلاف من استدعاءات واجهات برمجة التطبيقات المتزامنة ومعالجتها، مثل إدارة نسبة الاستخدام ودعم CORS والمصادقة والتحكم في الوصول والتقييد والمراقبة وإدارة إصدار واجهة برمجة التطبيقات.
ما لغة GraphQL؟
تُعد GraphQL لغة استعلام تم إنشاؤها تحديدًا لاستخدامها مع واجهات برمجة التطبيقات. وتضع في أولويتها منح العملاء البيانات التي يطلبونها تحديدًا فقط. وتم إنشاؤها لإضفاء السرعة والمرونة وسهولة الاستخدام بواسطة المطورين على واجهات برمجة التطبيقات. باعتبارها حلًا بديلًا عن استخدام REST، تمنح لغة GraphQL لمطوري الواجهة القدرة على الاستعلام عن العديد من قواعد البيانات والخدمات المصغرة وواجهات برمجة التطبيقات باستخدام نقطة نهاية واحدة للغة GraphQL. وتختار المنظمات إنشاء واجهات برمجة تطبيقات باستخدام لغة GraphQL لأنها تساعدها في تطوير التطبيقات بشكل أسرع. اقرأ المزيد حول GraphQL هنا.
يُعد AWS AppSync خدمة مُدارة بالكامل تجعل من السهل تطوير واجهات برمجة التطبيقات بلغة GraphQL من خلال التعامل مع الأعمال الكبيرة المتعلقة بالاتصال الآمن بمصادر البيانات مثل AWS DynamoDB وAWS Lambda وغيرهما، ويمكن لخدمة AWS AppSync إرسال تحديثات البيانات في الوقت الفعلي عبر Websockets إلى ملايين العملاء. وبالنسبة لتطبيقات الويب والهواتف المحمولة، توفر خدمة AppSync أيضًا وصولًا محليًا إلى البيانات عند عدم اتصال الأجهزة بالإنترنت. وبمجرد النشر، تعمل AWS AppSync تلقائيًا على توسيع نطاق محرك تنفيذ واجهة برمجة التطبيقات بلغة GraphQL وتخفيضه لتلبية أحجام طلبات واجهة برمجة التطبيقات.
كيف يمكن الحصول على خدمات واجهة برمجة التطبيقات من Amazon؟
تُعد إدارة واجهة برمجة التطبيقات جزءًا مهمًا في عملية تطوير البرامج الحديثة. ويجدر الاستثمار في بنية واجهة برمجة التطبيقات مثل الأدوات والبوابة وبنية الخدمات المصغرة بالنسبة للمستخدمين الداخليين والخارجيين.
تتوفر خدمة Amazon API Gateway مع مجموعة كاملة من الميزات لإدارة العديد من واجهات برمجة التطبيقات في وقت واحد وبكفاءة. ويمكنك إجراء مليون استدعاء لواجهة برمجة التطبيقات كحد أقصى مجانًا من خلال التسجيل في بوابة AWS.
توفر AWS AppSync إعداد واجهة برمجة تطبيقات بلغة GraphQL مُدارة بالكامل وإدارتها وصيانتها مع بنية أساسية مُضمنة عالية التوافر بلا خادم. ولا تدفع إلا مقابل استخدامك دون حد أدنى للرسوم أو استخدام إلزامي للخدمة. لبدء الاستخدام، يرجى تسجيل الدخول إلى وحدة AWS AppSync.
الخطوات التالية على AWS
ابدأ في الإنشاء باستخدام بوابة API gateway في وحدة إدارة تحكم AWS.