كرة أرضية بتقنية ثلاثية الأبعاد، شديدة التفاصيل، تتصل فيها المدن الكبرى بخطوط مضيئة. مناسبة تمامًا لمختلف الموضوعات المتعلقة بالأعمال والتمويل الدوليين أو شبكات البيانات العالمية. تم إنشاؤها باستخدام مواد من NASA: https://visibleearth.nasa.gov/images/55167/earths-city-lights، https://visibleearth.nasa.gov/images/73934/topography

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

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

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

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

هناك أنواع عديدة من واجهات برمجة التطبيقات (APIs)، منها واجهات برمجة تطبيقات الأجهزة والبرامج الثابتة، وواجهات أنظمة التشغيل، وواجهات المكتبات وأطر العمل، وواجهات الويب وغيرها، وعلى المستوى العام، تعمل جميعها بالطريقة نفسها: فهي تحدد عقدًا بين جزأين من البرمجيات، وتوضِّح ما يمكن طلبه وإرجاعه.

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

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

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

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

  • عندما ينقر المشتري على زر الدفع، يتم بدء استدعاء لواجهة برمجة التطبيقات. تتم معالجة هذا الطلب من التطبيق إلى خادم الويب عبر معرِّف الموارد الموحَّد (URI) الخاص بواجهة برمجة التطبيقات، ويتضمن فعل الطلب والرؤوس وأحيانًا نص الطلب. تحدِّد هذه العناصر مجتمعةً ما يتم طلبه وكيفية طلبه.

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

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

بالنسبة إلى المستخدم النهائي، تكون هذه العملية بأكملها غير مرئية؛ فهو لا يرى سوى تأكيد نجاح عملية الدفع.

WebMethods Hybrid Integration

أعد تصور التكامل ليتماشى مع عصر الذكاء الاصطناعي

يُبرز IBM Web Methods Hybrid Integration كيف يمكن للشركات ربط تطبيقات السحابة والأنظمة المحلية بسلاسة، ما يمكِّنها من تحقيق تحول رقمي مرن وقابل للتوسع. 

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

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

  • تُتيح واجهات برمجة تطبيقات الأجهزة والبرامج الثابتة للبرمجيات التواصل مع العناصر المادية للجهاز، مثل المعالجات وأجهزة الاستشعار.

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

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

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

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

* تجدر الإشارة إلى أن بعض الأنظمة القديمة تُتيح بروتوكولات الشبكة، مثل FTP وSMTP وSSH، مباشرةً باعتبارها واجهة للتكامل. من الناحية التقنية، تندرج هذه البروتوكولات ضمن التعريف الواسع لواجهات برمجة التطبيقات، إلا أنها تُصنَّف وفقًا لطريقة اتصالها وليس وفقًا لما تتصل به، ولذلك فهي أقل ارتباطًا بمناقشة تركز على التكامل.

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

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

واجهات REST API (نقل الحالة التمثيلية)

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

يُتيح REST البيانات في صورة موارد، وتستخدم واجهات REST API أساليب HTTP مثل GET وPOST وPUT وPATCH وDELETE للتفاعل مع هذه الموارد. ويتم تحديد كل مورد بواسطة معرِّف URI فريد، تتم الإشارة إليه عادةً باسم نقطة نهاية واجهة برمجة التطبيقات (API). وهذا هو العنوان المحدد الذي يرسل إليه العميل طلب API.

يتم تعريف REST بالقيود التالية:

  • الواجهة الموحَّدة - تضع قواعد موحَّدة للاتصال، بحيث تبدو جميع الطلبات الخاصة بالمورد نفسه بالطريقة نفسها. يجب أن يكون لكل مورد معرِّف URI واحد.

  • فصل العميل/الخادم - يجب أن يتمكن تطبيق العميل وتطبيق الخادم من التطور بشكل منفصل، دون اعتماد أحدهما على الآخر. المعلومة الوحيدة التي يمتلكها العميل هي معرِّف URI الخاص بالمورد.

  • انعدام الحالة - لا يخزِّن الخادم حالة الجلسة بين الطلبات. كل طلب مستقل بذاته ويجب أن يتضمن جميع المعلومات اللازمة لمعالجته.

  • قابلية التخزين المؤقت - يجب أن تكون جميع الموارد قابلةً للتخزين المؤقت متى أمكن، ويجب على الخادم تحديد هذه الموارد باعتبارها قابلةً للتخزين المؤقت.

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

  • التعليمات البرمجية عند الطلب (اختياري): تُرجع واجهات REST API البيانات عادةً. يسمح هذا القيد الأخير، وهو القيد الاختياري الوحيد، بإرجاع تعليمات برمجية قابلة للتنفيذ، مثل JavaScript، يمكن للعميل تشغيلها عند الحاجة.

للمزيد من الشرح الكامل لمبادئ REST، انتقِل إلى هنا.

بروتوكول الوصول البسيط إلى الكائنات (SOAP)

SOAP هو بروتوكول للمراسلة قائم على XML، ويتَّبع معايير صارمة تحدد كيفية هيكلة الرسائل وإرسالها. وعلى خلاف واجهات REST API، التي تعمل عمليًا بشكل شبه حصري عبر HTTP، لا يعتمد SOAP على بروتوكول نقل محدد. يمكنه العمل عبر HTTP وSMTP وبروتوكولات أخرى، ما يجعله أكثر مرونةً في بيئات المؤسسات التي لا يكون فيها HTTP دائمًا هو البروتوكول الأساسي.

تتميز رسائل SOAP بهيكل صارم يحدِّد كيفية معالجة الرسالة، ما يجعل SOAP أكثر تفصيلًا من REST، لكنه أيضًا أكثر توحيدًا. لا تزال المعايير الرسمية لـ SOAP وآليات معالجة الأخطاء المدمجة فيه ومواصفات الأمان الصارمة ذات قيمة، وتدعم استمرار استخدامه اليوم في قطاعات مثل الخدمات المالية والرعاية الصحية.

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

ظهر RPC قبل واجهات برمجة تطبيقات الويب، وله تطبيقات قديمة وحديثة. يُتيح RPC، الذي يُسمَّى أحيانًا استدعاء روتين فرعي أو استدعاء دالة، للتطبيق تنفيذ دالة أو أسلوب على خادم بعيد كما لو كان محليًا. يعتمد RPC على الإجراءات بدلًا من الموارد. وبدلًا من استخدام معرِّف URI منفصل لكل مورد، تعرض واجهات RPC API عادةً نقطة نهاية واحدة وتحدِّد الإجراء داخل حمولة الطلب.

XML-RPC

يستخدم XML-RPC، وهو الإصدار السابق مباشرةً للإصدار JSON-RPC، لغة XML لترميز الاستدعاءات والاستجابات. وهو أقدم من SOAP لكنه أبسط منه، ما يجعل من السهل تنفيذه، إلا أن الإسهاب في XML يجعله أثقل من البدائل القائمة على JSON. وهو في الأساس الإصدار السابق مباشرةً للإصدار JSON-RPC.

JSON-RPC

يعمل JSON-RPC بالطريقة نفسها التي يعمل بها XML-RPC، لكنه يستخدم JSON بدلًا من XML. يتميز JSON بحجم أصغر وسهولة أكبر في التحليل مقارنةً بـ XML، ما يجعل JSON-RPC أخف وأسهل في القراءة من سابقه.

gRPC

يمثِّل gRPC المستوى الحديث عالي الأداء ضمن عائلة RPC. تم تطويره في البداية بواسطة Google، وتتم صيانته حاليًا باعتباره مشروعًا مفتوح المصدر. بينما تستخدم تطبيقات RPC الأقدم تنسيقات نصية، يستخدم gRPC تنسيق Protocol Buffers (أو Profobuf)، وهو تنسيق تسلسل ثنائي يُنتج رسائل أصغر حجمًا وأسرع من JSON أو XML.

كما يعمل عبر HTTP/2 بدلًا من HTTP/1.1، ما يوفر المزيد من مزايا الأداء. يتم استخدام gRPC عادةً للاتصال الداخلي بين الخدمات المصغرة، ويدعم التدفق ثنائي الاتجاه، ما يجعله خيارًا مناسبًا لتدفقات البيانات في الوقت الفعلي.

GraphQL

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

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

اقرأ مقارنةً أكثر تفصيلًا بين REST وGraphQL هنا.

تتَّبع واجهات برمجة التطبيقات المذكورة أعلاه جميعها نموذج الطلب/الاستجابة الذي يبدأه العميل. هناك استثناءان مهمان تجدر الإشارة إليهما في سياق التكامل:

  • تحافظ WebSockets (واجهات WebSocket API) على اتصال دائم وثنائي الاتجاه، ما يجعلها مناسبة لحالات الاستخدام في الوقت الفعلي، مثل تدفقات البيانات المباشرة.

  • تعكس Webhooks هذا النموذج تمامًا؛ فبدلًا من أن يبدأ العميل الطلب، يرسل الخادم إشعارات إلى العميل عند وقوع حدث محدد.

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

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

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

*لا ينبغي الخلط بينها وبين "مواصفات OpenAPI (OAS)"، التي يمكنك معرفة المزيد عنها هنا. 

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

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

الشريك

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

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

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

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

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

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

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

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

نهج واجهات برمجة التطبيقات أولًا (API-first)، أو تصميم واجهات برمجة التطبيقات أولًا (API-design first)، هو أسلوب لتطوير البرمجيات تُعامل فيه واجهات برمجة التطبيقات باعتبارها أساس التطبيق، ويتم تصميمها قبل كتابة أي تعليمات برمجية للتطبيق. وبدلًا من البدء بمنطق الأعمال في الواجهة الخلفية وهيكل قاعدة البيانات، تحدِّد المؤسسات العقد أولًا، وغالبًا باستخدام مواصفات API مثل OpenAPI، ثم تبني بقية التطبيق حوله.

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

تتعامل بعض المؤسسات مع نهج API-design first وAPI-first باعتبارهما نهجين مختلفين، حيث يُعَد الثاني وظيفةً أوسع على مستوى المؤسسة، تنظر إلى واجهات برمجة التطبيقات باعتبارها منتجات بحد ذاتها، لها دورات حياة ومديرو منتجات وخطط عمل خاصة بها.

واجهات برمجة التطبيقات والخدمات المصغرة

الخدمات المصغرة هي أسلوب بنائي يقسِّم التطبيق إلى خدمات أصغر ومستقلة. تتواصل هذه الخدمات عبر واجهات برمجة التطبيقات، وغالبًا من خلال مزيج من البروتوكولات والأساليب، مثل REST APIs للخدمات الموجَّهة إلى الخارج، وgRPC للاتصال الداخلي بين الخدمات، وWebhooks لمسارات العمل القائمة على الأحداث. تمنح بنية الخدمات المصغرة المطورين المرونة لاختيار إطار العمل الأنسب لكل خدمة.

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

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

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

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

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

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

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

تشمل إدارة واجهات برمجة التطبيقات الإشراف على:

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

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

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

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

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

تحديد معدل الطلبات والتحكم في تدفقها

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

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

عملية الإصدار

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

المراقبة وقابلية الملاحظة

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

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

يساعد فهم استخدام واجهات برمجة التطبيقات (API) الفِرق على تخطيط السعة ومعالجة التهديدات المحتملة والامتثال للمتطلبات الحكومية والتنظيمية.

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

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

تشمل حالات الاستخدام الشائعة في المؤسسات ما يلي:

التكامل مع الخدمات التابعة لجهات خارجية

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

تكامل المنظومة والشركاء

تستخدم المؤسسات واجهات برمجة التطبيقات لمشاركة البيانات والخدمات مع الشركاء والمورِّدين والعملاء. قد تستخدم شركة لوجستية واجهة برمجة تطبيقات لإتاحة معلومات تتبُّع الطلبات، بحيث يتمكن تجار البيع بالتجزئة من دمجها في أنظمتهم.

مزامنة البيانات

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

تكامل الذكاء الاصطناعي والتعلم الآلي

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

وكلاء الذكاء الاصطناعي وبروتوكول Model Context Protocol

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

يعمل Model Context Protocol (MCP)، وهو معيار مفتوح المصدر قدمته Anthropic وتخضع حوكمته حاليًا لـ Linux Foundation، على ربط نماذج ووكلاء الذكاء الاصطناعي بالتطبيقات والأنظمة الخارجية، ما يَسُدّ هذه الفجوة. تعمل خوادم MCP عادةً فوق واجهات برمجة التطبيقات الحالية باعتبارها "مترجمًا عالميًا"، إذ تَصِف إمكانات الأداة بطريقة موحَّدة يمكن لأي تطبيق ذكاء اصطناعي متوافق مع MCP استخدامها. وبدلًا من إنشاء عملية تكامل مخصصة بين كل تطبيق ذكاء اصطناعي وكل أداة، يمكن للمطورين إنشاء خادم MCP واحد لأداة معينة وإتاحته لأي وكيل متوافق. غالبًا ما يتم تشبيه MCP بمنفذ USB-C لتطبيقات الذكاء الاصطناعي، إذ يوفر موصِّلًا قياسيًا واحدًا بدلًا من العديد من الموصِّلات المخصصة.

الواجهات الخلفية لتطبيقات الأجهزة المحمولة والويب

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

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

التكامل في الوقت الفعلي والتكامل القائم على الأحداث

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

تعمل Webhooks على إخطار الأنظمة المتصلة عند وقوع أحداث محددة، بينما تحافظ WebSockets وتدفق gRPC على اتصالات مستمرة لتدفقات البيانات المتواصلة. ويتم استخدام هذه التقنيات معًا لتشغيل منصات التداول المالي وأنظمة المحادثة والألعاب متعددة اللاعبين وتبادل بيانات مستشعرات إنترنت الأشياء (IoT)، مع إبقاء الأنظمة محدّثةً دون الحاجة إلى الاستعلام المستمر.

مؤلف

Michael Goodwin

Staff Editor, Automation & ITOps

IBM Think

حلول ذات صلة
®IBM API Connect

يمكنك تطوير جميع أنواع واجهات برمجة التطبيقات (API) وإدارتها وتأمينها والتفاعل معها بسلاسة، أينما وجدت.

استكشف API Connect
حلول التكامل من IBM

عزز أعمالك من خلال الاتصال السلس و الأتمتة باستخدام برنامج منصة التكامل.

استكشف حلول التكامل من IBM
الخدمات الاستشارية ذات الصلة بالتقنيات السحابية

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

استكشاف الاستشارات السحابية
اتخذ الخطوة التالية

تدعم IBM API Connect® جميع أنواع واجهات برمجة التطبيقات (API) الحديثة مع تعزيز الأمان والحوكمة. إمكانيات الذكاء الاصطناعي التوليدي (Gen AI) تعمل على أتمتة المهام اليدوية، مما يوفر الوقت ويساعد على ضمان الجودة. 

  1. استكشف IBM API Connect
  2. استكشف حلول التكامل من IBM®