ما هي واجهة برمجة التطبيقات (API) وما هي أنواع واجهات برمجة التطبيقات (API)؟

0 الأسهم
0
0
0
0

مقدمة

ربما سمعتَ بمصطلح واجهة برمجة التطبيقات (API) وتساءلتَ عن ماهيتها ووظيفتها. واجهة برمجة تطبيقات الويب هي مجموعة من الأدوات التي تُمكّن مطوري المواقع الإلكترونية من إرسال واستقبال التعليمات والبيانات عبر الاتصال بخوادم الويب. العديد من المواقع الإلكترونية وتطبيقات الويب التي نستخدمها اليوم تعتمد على واجهات برمجة التطبيقات.

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

طبقة واجهة برمجة التطبيقات (API) بشكل أساسي:

  • يضمن السماح لصفحة الويب بإرسال واستقبال الطلبات.
  • يتحقق من صحة تنسيق الطلب قبل إرساله إلى الواجهة الخلفية.
  • يُعيد البيانات بالتنسيق المتوقع بالإضافة إلى بعض المعلومات الإضافية.
  • يوضح لصفحة الويب سبب عدم إرجاع البيانات.

أنواع واجهات برمجة التطبيقات (APIs)

توجد أنواع مختلفة من واجهات برمجة التطبيقات (APIs) بمستويات أمان وخصوصية متفاوتة. هناك أربعة أنواع رئيسية من واجهات برمجة التطبيقات، سنتناول كلًا منها بالتفصيل فيما يلي:

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

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

2- واجهات برمجة التطبيقات الداخلية

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

3. واجهات برمجة تطبيقات الشركاء

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

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

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

أنواع بروتوكولات واجهة برمجة التطبيقات (API)

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

استدعاء الإجراء عن بعد (RPC)

يُعدّ بروتوكول RPC أبسط البنى الثلاث. على عكس REST وSOAP، اللذين يُسهّلان نقل البيانات، تستدعي واجهات برمجة تطبيقات RPC العمليات. بعبارة أخرى، تُنفّذ هذه الواجهات البرامج النصية على الخادم. وقد تستخدم واجهات برمجة تطبيقات RPC تنسيق JSON أو XML في استدعاءاتها.

بروتوكول الوصول إلى كائنات الخدمة (SOAP)

بروتوكول SOAP هو بروتوكول لنقل البيانات عبر الشبكة، ويمكن استخدامه لإنشاء واجهات برمجة التطبيقات (APIs). يحدد SOAP بدقة كيفية إرسال الرسائل ومحتواها، مما يجعل واجهات برمجة تطبيقات SOAP أكثر أمانًا من واجهات برمجة تطبيقات REST.

نقل الدولة التمثيلي (REST)

تعتمد معظم واجهات برمجة تطبيقات الويب اليوم على REST. وREST عبارة عن مجموعة من الإرشادات لواجهات برمجة تطبيقات قابلة للتوسع وخفيفة الوزن وسهلة الاستخدام. وواجهة برمجة تطبيقات REST هي واجهة تتبع إرشادات REST وتُستخدم لنقل البيانات من الخادم إلى العميل الطالب.

باختصار، تتضمن إرشادات واجهة برمجة تطبيقات REST ما يلي:

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

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

يمكن أيضاً تصنيف واجهات برمجة التطبيقات (APIs) من حيث حالات الاستخدام، والتي تشمل ما يلي:

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

من الناحية الهيكلية، تُعدّ واجهة برمجة التطبيقات المفتوحة (Open API) صيغةً قياسيةً لتحديد بنية وبنية واجهات برمجة تطبيقات REST القياسية. تتميز وثائق واجهة برمجة التطبيقات المفتوحة بسهولة قراءتها آليًا وبشريًا، مما يُمكّن أي شخص من فهم كيفية عمل كل واجهة برمجة تطبيقات بسهولة. يستطيع المهندسون استخدام واجهة برمجة التطبيقات المفتوحة لبرمجة وتصميم الخوادم، وتطويرها، وإجراء الاختبارات عليها.

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

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

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

تطبيق يُعرف باسم واجهة برمجة تطبيقات الويب (Web API) هو نوع من الواجهات التي تحتوي على مجموعة من الوظائف. تُمكّن هذه الوظائف المبرمجين من الوصول إلى ميزات أو بيانات محددة في التطبيق. وكما يوحي الاسم، فإن واجهة برمجة تطبيقات الويب (Web API) هي واجهة تستخدم بروتوكول HTTP للوصول إلى الإنترنت. ويمكنها مساعدتك في إنشاء وتطوير خدمات REST لبروتوكول HTTP.

ما فائدة واجهة برمجة التطبيقات (API)؟

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

ما هو مفتاح API؟

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

GraphQL

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

ما الفرق بين البرمجيات وواجهة برمجة التطبيقات (API)؟

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

عادة ما تكون واجهات برمجة التطبيقات مجرد جزء من برنامج معين، ومعظم التطبيقات التي تستخدمها تعتمد على واجهات برمجة تطبيقات متعددة بشكل أو بآخر.

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

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

قد يعجبك أيضاً