بوابة API
بوابة API هي نقطة الدخول الموحدة لجميع طلبات العملاء في بنية الخدمات المصغرة. تستقبل الطلبات وتوجّهها إلى الخدمات المناسبة، وتتكفل بالمصادقة وتحديد معدل الطلبات وتجميع الردود وغيرها من المهام المشتركة، مما يخفف العبء عن الخدمات المصغرة نفسها.
المحتويات
ما هي بوابة API بعبارات بسيطة
بوابة API (API gateway) هي خادم وكيل عكسي يعمل نقطةَ دخول موحدة لجميع طلبات العملاء في بنية تتضمن خدمات مصغرة كثيرة. بعبارات أبسط: إنها «الحارس» و«الموزِّع» في خدمتك؛ يستقبل جميع طلبات المستخدمين، ويحدد إلى أي خدمة مصغرة يوجهها، ثم يعيد الرد.
تخيَّل مبنى مكاتب كبيرًا ذا أقسام متعددة. بدلًا من أن يطوف الزائر جميع الأقسام، توجد شركة اتصال مركزية (بوابة API): يقول العميل ما يحتاج إليه (طلب)، فتوجهه الشركة إلى القسم المعني (خدمة مصغرة)، وتستلم الرد وتمرره إلى العميل. بل لا يعرف العميل أصلًا في أي قسم يقع المختص المطلوب، فهو يتعامل مع الشركة الاتصالية فقط.
للمزيد عن عمل بنية الخدمات المصغرة، راجع مقال بنية العميل والخادم.
الوظائف الرئيسية لبوابة API
- التوجيه: تحويل طلب العميل إلى خدمة مصغرة بعينها اعتمادًا على عنوان URL أو الترويسات أو غيرها من المعاملات.
- المصادقة والتفويض: التحقق من هوية المستخدم وصلاحياته قبل أن يصل الطلب إلى الخدمة المصغرة.
- تحديد معدل الطلبات (rate limiting): حماية الخدمات من التحميل الزائد وهجمات DoS عبر تحديد عدد الطلبات من العميل نفسه.
- تحويل البيانات: تغيير صيغة الطلب والرد (مثلًا من XML إلى JSON)، وإضافة الترويسات HTTP أو إزالتها.
- تجميع الردود: جمع البيانات من عدة خدمات مصغرة في رد واحد للعميل حتى لا يضطر لإرسال عدة طلبات.
- المراقبة والتسجيل: جمع إحصاءات عن الطلبات وأزمنة الاستجابة والأخطاء لأغراض التحليل ومعالجة الأعطال.
- توزيع الحمل: توزيع الطلبات بين عدة نسخ من الخدمة المصغرة نفسها.
حلول شائعة لبوابات API
- حلول سحابية (مدارة): Yandex API Gateway، وAWS API Gateway، وAzure API Management، وGoogle Cloud Endpoints. خدمات جاهزة لا تتطلب إدارة بنية تحتية.
- مفتوحة المصدر: Kong وTraefik وEnvoy وTyk وNGINX، تُنشر على خوادمك الخاصة.
- حلول داخلية (on-premise): Apigee (من Google) وIBM API Connect؛ منصات شاملة لإدارة واجهات API.
كيف تعمل بوابة API عمليًا
- يرسل العميل طلبًا إلى عنوان البوابة (مثلًا api.company.com).
- تفحص البوابة المصادقة: هل يملك العميل رمزًا (token) صالحًا؟ إن لم يكن، تُعاد رسالة خطأ 401.
- تفحص البوابة الصلاحيات: هل يحق لهذا المستخدم تنفيذ الإجراء المطلوب؟ إن لم يكن، خطأ 403.
- تفحص البوابة الحدود: هل تجاوز العميل حد الطلبات في الدقيقة؟ إن كان كذلك، خطأ 429.
- التوجيه: تحدد البوابة عبر مسار URL وطريقة HTTP الخدمة المطلوبة (مثلًا /users إلى خدمة المستخدمين و/orders إلى خدمة الطلبات).
- التحويل: عند اللزوم تحوّل البوابة الطلب إلى صيغة مفهومة للخدمة المصغرة.
- تمرير الطلب إلى الخدمة المصغرة.
- استلام الرد من الخدمة المصغرة.
- التجميع: عند الحاجة تجمع البوابة ردود عدة خدمات مصغرة.
- تحويل الرد: تغيير صيغة الرد إلى ما يتوقعه العميل.
- إعادة الرد إلى العميل.
للمزيد عن أمان واجهات API، راجع مقال جدار حماية تطبيقات الويب (WAF).
مزايا استخدام بوابة API
- نقطة دخول واحدة: لا يعلم العملاء بوجود الخدمات المصغرة المتعددة، بل يتعاملون مع واجهة واحدة.
- أمان مبسط: تُجرى جميع فحوص المصادقة والتفويض مركزيًا.
- تخفيف العبء عن الخدمات المصغرة: لا تتكفل الخدمات بالمصادقة أو حدود الطلبات أو التسجيل، بل تنفذ منطق العمل فقط.
- المرونة: يمكنك تعديل بنية الواجهة الخلفية (إضافة خدمات أو حذفها أو تغييرها) دون المساس بالعملاء.
- قابلية التوسع: إمكانية توزيع الحمل بين عدة نسخ من الخدمات المصغرة.
عيوب بوابة API
- نقطة فشل واحدة: إذا تعطلت البوابة أصبح النظام كله غير متاح.
- زمن الاستجابة: يمر كل طلب بطبقة إضافية مما يزيد زمن الرد.
- تعقيد الإعداد: يتطلب ضبطًا دقيقًا للمسارات وقواعد التحويل وسياسات الأمان.
للمزيد عن التوافرية العالية، راجع مقال عنقود الخوادم.
الأسئلة المتكررة
ما هي بوابة API (API gateway) بعبارات بسيطة؟
بوابة API نقطة دخول واحدة لجميع الطلبات الموجهة إلى الخدمات المصغرة. تستقبل الطلب وتفحص صلاحيات المستخدم وتحد من معدل الطلبات وتوجهه إلى الخدمة المناسبة، تمامًا كمكتب استقبال في مبنى مكاتب كبير. للمزيد عن الخدمات المصغرة، راجع مقال بنية العميل والخادم.
فيما تستخدم بوابة API؟
تدير بوابة API بشكل مركزي المصادقة والتفويض وتحديد الطلبات والتوجيه وتحويل البيانات وتجميع الردود. هذا يخفف العبء عن الخدمات المصغرة ويبسط إدارة واجهات API. للمزيد عن الأمان، راجع مقال WAF.
ما بوابات API المتوفرة؟
سحابية: Yandex API Gateway وAWS API Gateway وAzure API Management. مفتوحة المصدر: Kong وTraefik وTyk وEnvoy وNGINX. داخلية (on-premise): Apigee وIBM API Connect. يعتمد الاختيار على البنية التحتية والميزانية. للاطلاع على حلول مشابهة، راجع مقال الخادم الوكيل.
بماذا تختلف بوابة API عن البروكسي؟
البروكسي العادي يمرر الطلبات «كما هي» فقط. أما بوابة API فهي بروكسي «ذكي»: تفحص المصادقة، وتحد من الطلبات، وتحوّل البيانات، وتجمّع ردود عدة خدمات، وتجمع بيانات التحليلات. للمزيد عن البروكسيات، راجع مقال الخادم الوكيل.
هل بوابة API موزِّع حمل؟
ليس تمامًا. موزع الحمل يوزع الحمل بين نسخ الخدمة الواحدة. أما بوابة API فتفعل أكثر: توجه الطلبات بين خدمات مختلفة، وتفحص الصلاحيات وتحوّل البيانات. ويمكن أن تشمل موازنة الحمل، لكنها مجرد إحدى وظائفها. للمزيد عن موازنة الحمل، راجع مقال عنقود الخوادم.
مصطلحات أخرى في «البنية التحتية»
هل كانت هذه المعلومة مفيدة؟
ابنِ بنية تحتية موثوقة لتقنية المعلومات
ابنِ بنية تحتية حديثة ومتحملة للأخطاء لتقنية المعلومات. تصميم وتوريد المعدات والتركيب والصيانة على أساس تسليم المفتاح.