ما المقصود بنقطة نهاية واجهة برمجة التطبيقات؟
استكشف حل نقطة نهاية واجهة برمجة التطبيقات من IBM اشترِك في رسالة Think الإخبارية
رسم توضيحي يحتوي على مجموعة من الصور التوضيحية لمعدات وذراع آلية وهاتف المحمول

تاريخ النشر: 5 أغسطس 2024
المساهمون: Dan Nosowitz, Michael Goodwin

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

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

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

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

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

تمّ تصنيف IBM كشركة رائدة في تقرير Forrester Wave للربع الثالث من عام 2024 في مجال برامج إدارة واجهات برمجة التطبيقات (API)

يشير Forrester: "تتناسب شركة IBM بشكل جيد مع إستراتيجية واجهة برمجة التطبيقات التي تقودها الأعمال مع بوابة مطورين تفاعلية ومنتجات رقمية تتجاوز نقل الحالة التمثيلية"

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

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

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

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

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

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

تبدأ العملية عندما يرسل عميل واجهة برمجة التطبيقات طلب مورد (استدعاء واجهة برمجة التطبيقات) إلى نقطة نهاية واجهة برمجة التطبيقات المقابلة. ويتم الوصول إلى نقاط النهاية باستخدام طرق طلب HTTP مثل POST و GET و PUT و PATCH و DELETE. تشير هذه الطرق إلى الإجراء الذي يتطلع العميل إلى اتخاذه على المورد المحدد.

على سبيل المثال، إذا كان العميل يتطلع إلى استرداد قائمة بإجمالي الميداليات الأولمبية لسنة معينة من قاعدة البيانات الافتراضية Olympicfacts.com، ويُرسل طلب GET إلى عنوان URL التالي لنقطة النهاية: 

https://api.olympicfacts.com/v1/{year}

سيعيد هذا الطلب قائمة بإجمالي الميداليات الأولمبية حسب البلد. (يشير v1 في نقطة النهاية الافتراضية هذه إلى إصدار واجهة برمجة التطبيقات، وهي ممارسة شائعة في إدارة إصدارات واجهة برمجة التطبيقات). إذا أراد العميل الحصول على إجمالي لبلد معين في سنة معينة، فسيُضاف معرف إلى عنوان URL الأساسي: 

https://api.olympicfacts.com/v1/year/{id}

في هذا المثال، يُستخدم المعرف {id} للإشارة إلى البلد الذي يتطلع العميل إلى تلقي معلومات عنه.

بالإضافة إلى ذلك، قد يتضمن الطلب:

  • عناوين: يمكن أن توفر العناوين معلومات إضافية حول الطلب، مثل عنوان القبول الذي يحدد أنواع الوسائط المقبولة

  • معلمات: يمكن إضافة معلمات الاستعلام إلى عنوان URL الأساسي أو في نص الطلب لتصفية معايير البحث أو إضافة مواصفات أخرى.

  • نص الطلب: يتضمن نص الطلب البيانات اللازمة لإنشاء مورد أو تعديله. على سبيل المثال، إذا كان الطلب هو إنشاء مدونة جديدة (طلب POST)، فسيتضمن نص الطلب محتوى المدونة الجديدة.

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

ما الفرق بين واجهة برمجة تطبيقات نقل الحالة التمثيلية ونقاط نهاية GraphQL؟

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

كل من GraphQL ونقل الحالة التمثيلية هما تقنيتان قائمتان على الموارد تدعمان تنسيقات بيانات متشابهة (JSON وXML، على سبيل المثال) وتمكنان العملاء من طلب البيانات من الخوادم باستخدام طرق HTTP. ومع ذلك، فإنهما يختلفان في متطلبات الطلب واسترجاع البيانات، من بين اختلافات أخرى. سنركز على الاختلافات الرئيسية المتعلقة بنقطة النهاية.

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

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

ليس لواجهات برمجة تطبيقات نقل الحالة التمثيلية أو GraphQL ميزة على الأخرى بطبيعتها؛ فهي أدوات مختلفة تناسب مهامًا مختلفة.3

كيف يُنفذ اختبار واجهة برمجة التطبيقات؟ 

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

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

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

تتضمن الأنواع الأخرى من الاختبارات اليدوية: 

  • إرسال العديد من الطلبات في وقت واحد لمعرفة كيفية تعامل الخادم مع حمل الطلبات

  • التحقق من تكامل واجهة برمجة التطبيقات بشكل صحيح مع الخدمات الأخرى

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

  • تقديم طلب غير صالح عن قصد للتحقق من إعادة رسالة الخطأ الصحيحة

يمكن للاختبار الآلي الذي يُجرى من خلال منصة إدارة واجهة برمجة التطبيقات أن يقدم العديد من المزايا وهي:

  • تقليل احتمالية حدوث خطأ بشري

  • زيادة كفاءة التحقق من صحة نقاط نهاية واجهة برمجة التطبيقات المتعددة

  • تحسين سرعة الاختبار وربما تقليل التكاليف على المدى الطويل بمجرد إنشاء أنظمة اختبار آلية (توفير وقت الموظفين، على سبيل المثال)

  • مواءمة الاختبار وفق بروتوكولات ومعايير وأذونات موحدة

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

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

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

هناك العديد من الطرق التي يمكن للمؤسسة من خلالها الحفاظ على أمن نقاط نهاية واجهة برمجة التطبيقات وأمن واجهة برمجة التطبيقات بشكل عام، بما في ذلك:

 

آليات المصادقة

تتأكد طرق المصادقة مثل مصادقة مفتاح واجهة برمجة التطبيقات والتفويض المفتوح (OAuth) من أن المستخدمين المصرح لهم فقط هم من يمكنهم الوصول إلى البيانات.

HTTPS

يستخدم HTTPS (وهو إصدار أكثر أمانًا من بروتوكول نقل النص التشعبي أو اختصارًا HTTP) أمان طبقة النقل (TLS) لتشفير الاتصالات بين العميل والخادم. وهذا يزيد من أمان عمليات نقل البيانات.

 

تقييد المعدل

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

التصفية الجغرافية

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

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

بوابة واجهة برمجة التطبيقات هي طبقة برمجية تعمل كوسيط بين أجهزة العميل والخوادم. وهي عبارة عن نقطة مركزية تقبل كل استدعاءات واجهة برمجة التطبيقات وتوجهها إلى الخدمات المطلوبة. يمكن تنفيذ العديد من ميزات الأمان هذه (بالإضافة إلى ميزات مراقبة واجهة برمجة التطبيقات والتحليلات) داخل بوابة واجهة برمجة التطبيقات؛ كما أن استخدام البوابة يعزز التطبيق المتسق لبروتوكولات الأمان عبر بيئة واجهة برمجة التطبيقات.

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

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

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

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

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

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

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

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

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

®IBM® API Connect هو حل إدارة دورة حياة كاملة لواجهة برمجة التطبيقات يستخدم تجربة بديهية للمساعدة على إنشاء واجهات برمجة التطبيقات وإدارتها وتأمينها وتوظيفها اجتماعيًا وتحقيق الدخل منها باستمرار، ما يعزز التحول الرقمي محليًا وعبر البيئات السحابية.

استكشف IBM API Connect جرّب IBM API Connect مجانًا

أدوات API Gateway من IBM API Connect

تُعدّ API gateway، المبنية على ®IBM DataPower، بوابة مؤسسية مصممة لعرض البيانات وتطبيقات الأعمال بشكل آمن أينما وجدت، محليًا أو عبر البيئات السحابية. فهي توفر مجموعة شاملة من السياسات المتعلقة بالأمن وإدارة حركة البيانات وتعيين وسيط والتسريعات ودعم البروتوكولات غير HTTP.

استكشف أدوات API Gateway من IBM API Connect طلب عرض توضيحي مباشر

IBM Cloud Pak for Integration

إن IBM Cloud Pak® for Integration عبارة عن منصة تكامل هجينة تطبق وظائف أتمتة الذكاء الاصطناعي ذات الحلقة المغلقة لدعم أنماط متعددة من التكامل. توفر المنصة مجموعة شاملة من أدوات التكامل ضمن تجربة واحدة وموحدة لربط التطبيقات والبيانات عبر أي بيئة سحابية أو محلية.

استكشف IBM Cloud Pak for Integration
حلول IBM iPaaS

تقدم حلول IBM iPaaS نهجًا نموذجيًا وسهل الاستخدام يحقق التكامل والربط لكل تطبيقاتك وبياناتك بسلاسة أينما كانت.

استكشف حلول IBM iPaaS
الموارد مفتاح إلغاء القفل لإمكانات واجهات برمجة التطبيقات الكاملة: إدارة واجهة برمجة التطبيقات

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

صُنفت IBM كشركة رائدة في تقرير Forrester Wave لعام 2024 في مجال برامج API Management

حصل IBM API Connect على أعلى درجة ممكنة في 17 معيارًا من أصل 24 معيارًا.

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

تعرف على مجموعات تطوير البرمجيات (SDKs) وواجهات برمجة التطبيقات وكيفية تحسين كل من دورات تطوير البرمجيات وتجربة المستخدم النهائي (UX).

ما المقصود بمنصة التكامل كخدمة (iPaaS)؟

منصة التكامل كخدمة (iPaaS) هي مجموعة من أدوات وحلول الخدمة الذاتية المستندة إلى السحابة المستخدمة لدمج البيانات من تطبيقات متعددة مستضافة في بيئات تقنية المعلومات المختلفة.

ما المقصود بالبرنامج الوسيط؟

البرمجيات الوسيطة هي البرمجيات التي تتيح نوعًا أو أكثر من الاتصال أو الاتصال بين التطبيقات أو العناصر في شبكة موزعة.

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

واجهة برمجة تطبيقات نقل الحالة التمثيلية (وتسمى أيضًا واجهة برمجة تطبيقات RESTful أو واجهة برمجة تطبيقات الويب RESTful) هي واجهة برمجة تطبيقات تتوافق مع مبادئ تصميم النمط المعماري لنقل الحالة التمثيلية (REST).