ما هي إدارة API؟

مرحبا بالجميع! الأصدقاء ، في 21 فبراير ، أطلقنا دورة "Backend PHP Developer" . تحسبا لإطلاق الدورة ، نريد أن نطلعكم على ترجمة مادة مثيرة للاهتمام. استمتع بالقراءة!

في أكتوبر ، في مؤتمر NGINX Conf 2018 ، أعلنا وحدة تحكم API جديدة لوحدة التحكم NGINX . مع هذا المنتج ، نعمل على تعزيز مكانتنا كبوابة واجهة برمجة التطبيقات الأكثر انتشارًا في الصناعة - تستخدم ملايين المواقع بالفعل NGINX Open Source و NGINX Plus لنقل حركة المرور بشكل آمن بين تطبيقات الخادم ومستهلكي واجهة برمجة التطبيقات التي توفرها هذه التطبيقات.



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



تغطي إدارة API دورة حياة واجهات برمجة التطبيقات الخاصة بك بأكملها
(في الشكل: بدءًا من أعلى اتجاه عقارب الساعة - التعريف والنشر ، الأمن ، إدارة المرور (بوابة API) ، المراقبة والدعم المستمران ، تحليلات لمدى الوصول إلى API. التكيف (Dev-portal) ؛
في المركز - إدارة API)

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

المفاهيم الأساسية

واجهة برمجة تطبيقات الإدارة لها مفاهيمها ومصطلحاتها الخاصة:

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

    • الموارد أساسية لأي تعريف API ؛ إنها عبارة عن مجموعة من المعلومات التي يقوم API بتنفيذ العمليات عليها. أمثلة على الموارد هي المستندات ومعرفات العملاء. يتم استدعاء API للحصول على هذه المعلومات.
    • تشير نقاط النهاية إلى حيث توجد الموارد. تحتوي واجهات برمجة التطبيقات على عنوان URL أساسي يتم إضافة مسارات نقطة النهاية إليه. تشير جميع نقاط نهاية واجهة برمجة التطبيقات إلى عنوان URL الأساسي.

  • على سبيل المثال ، عند نقطة نهاية واجهة برمجة التطبيقات ، https://app.enterprise.com/v1/inventory/ ، /v1 هو المسار الأساسي ، و /inventory هو المورد.
  • تتيح حلول إدارة واجهة برمجة التطبيقات لمؤلفي واجهة برمجة التطبيقات نشر واجهات برمجة التطبيقات في مجموعة متنوعة من البيئات ، مثل البيئات المخصصة للإنتاج أو الاختبار أو الإعداد. هذا يضمن الاتساق لكل بيئة ويمنع التكوين الخاطئ. تعمل الحلول تلقائيًا على إنشاء واجهات برمجة تطبيقات جديدة وتعديل التطبيقات الحالية.
  • بوابة واجهة برمجة التطبيقات (API) - كما ذكر سابقًا ، تقوم بوابات واجهة برمجة التطبيقات بحماية وتوفير حركة المرور بين الواجهة الخلفية للمستهلكين وواجهة برمجة التطبيقات. تتضمن وظيفة البوابة مصادقة مكالمات واجهة برمجة التطبيقات وطلبات التوجيه إلى الخلفية المقابلة وتطبيق حدود السرعة لمنع التحميل الزائد للأنظمة أو تخفيف هجمات DDoS أو إلغاء تحميل حركة مرور SSL / TLS لتحسين الأداء ومعالجة الأخطاء والاستثناءات.
  • Microgateway - تحتوي العديد من الحلول على طائرة بيانات مركزية وثيقة الصلة (بوابة API) وطائرة تحكم (أداة إدارة API). يجب أن تمر جميع مكالمات API عبر مستوى التحكم ، مما يضيف تأخيرًا. بوابة API في هذا النهج المعماري غير فعالة عند معالجة حركة المرور في البيئات الموزعة (على سبيل المثال ، حركة المرور داخل الخدمة في بيئة الخدمات المصغرة أو معالجة حركة مرور إنترنت الأشياء لدعم التحليل في الوقت الحقيقي). لذلك ، لإدارة حركة المرور ، عندما يكون المستهلكون ومزودو واجهة برمجة التطبيقات (API) على مقربة ، قدم موردو الحلول القديمة مكونًا إضافيًا من البرامج - عبارة عن بوابة صغيرة لمعالجة مكالمات واجهة برمجة التطبيقات.
  • تحليلات واجهة برمجة التطبيقات - عندما تصبح واجهات برمجة التطبيقات الخاصة بك شائعة ، يتعين عليك التأكد من أنها توفر قيمة للمستخدمين وكذلك تحقيق أهداف عملك. هذا هو المكان الذي تصبح فيه التحليلات حرجة. توفر حلول إدارة واجهة برمجة التطبيقات رؤى مهمة من خلال تصورات (مثل لوحات المعلومات والتقارير) للمقاييس واستخدام واجهة برمجة التطبيقات ، لإعلامك (كأمثلة) بواجهة برمجة التطبيقات التي يتم استخدامها في كثير من الأحيان أو أقل ، وكيف تتغير حركة مرور واجهة برمجة التطبيقات بمرور الوقت ، وأي مطورين هم أفضل المستهلكين API. تتيح تحليلات واجهة برمجة التطبيقات لمالك شركة API ، والتي تسمى أحيانًا "إدارة منتجات API" ، اكتساب نظرة ثاقبة على أداء برنامج API.
  • التحليلات مهمة أيضًا لاستكشاف الأخطاء وإصلاحها. توفر حلول إدارة API فهمًا عميقًا للأداء لكل واجهة برمجة تطبيقات. تسمح هذه المقاييس لفرق البنية التحتية والعمليات بتتبع وحل مشكلات الأداء والأمان. فيما يلي أمثلة للأسئلة التي يمكن أن يجيب عليها المحلل:

    • ما هي حالة ووقت تشغيل جميع مثيلات بوابة API الخاصة بي؟
    • متى نرى تباطؤا لواجهة برمجة التطبيقات؟
    • متى تحدث أخطاء HTTP لواجهة برمجة التطبيقات؟
    • ما هي حالة ووقت تشغيل جميع مثيلات بوابة API الخاصة بي؟
    • متى نلاحظ التباطؤ في API؟
    • متى تحدث أخطاء HTTP لواجهة برمجة التطبيقات؟

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

    • المصادقة - تشير المصادقة إلى عملية تحديد هوية المتصل بشكل موثوق. مفاتيح API هي آلية قياسية لمصادقة وتحديد المشتركين الذين يرغبون في الوصول إلى واجهة برمجة التطبيقات. توفر حلول إدارة API لموفري واجهة برمجة التطبيقات واجهة لإنشاء مفاتيح واجهة برمجة التطبيقات ، والتي يمكن بعد ذلك نقلها إلى مطوري الطرف الثالث لاستخدامها في مكالمات واجهة برمجة التطبيقات. OAuth هي آلية مصادقة تستخدم على نطاق واسع.
    • التخويل - يشير التخويل إلى عملية تحديد الامتيازات أو مستويات الوصول الممنوحة للمستخدم. طريقة واحدة لتخويل المستخدمين هي من خلال JSON Web Tokens (JWT). JWTs هي رموز الوصول التي تدعي (المطالبات هي مصطلحات JWT للامتيازات الفردية). على سبيل المثال ، قد يتضمن JWT المقدم من تطبيق عميل تأكيدًا يسمح بالوصول إلى مورد واحد محدد. إذا حاول تطبيق العميل الوصول إلى أي موارد أخرى ، يتم إرجاع خطأ HTTP 403 محظور ، يتم إرجاع الخطأ.
    • التحكم في الوصول المستند إلى الدور (RBAC) - يشير RBAC إلى تعريف أدوار المستخدم بامتيازات محددة. على سبيل المثال ، لا يتحمل موظفو البنية التحتية والعمليات عمومًا مسؤولية إنشاء واجهة برمجة تطبيقات ونشرها ، ولكن فقط عن المراقبة واستكشاف الأخطاء وإصلاحها. وبالتالي ، يتم تعيين دور له هذه الامتيازات فقط. وبالمثل ، يتم تعيين دور مدير المنتج API فقط الذي لديه حق الوصول إلى تحليلات API.
    • حد السرعة - يشير الحد الأقصى للسرعة إلى فرض حد لعدد الطلبات التي يمكن للوكيل الطالب تقديمها خلال فترة زمنية معينة (على سبيل المثال ، 10000 طلب في الثانية). تمنع حدود السرعة الحمولة الزائدة للأنظمة الخلفية وتساعد على تخفيف هجمات DDoS. يوفر حل إدارة API واجهة لتحديد حدود السرعة التي تطبقها بوابة API بعد ذلك. تتيح لك حدود السرعة أيضًا تقديم مستويات خدمة متعددة المستويات (على سبيل المثال ، يمكن لعملاء Gold تقديم 10000 طلب في الثانية ، ويمكن لعملاء Silver تقديم 5000).

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

إدارة واجهة برمجة تطبيقات NGINX: استخدام بوابة واجهة برمجة التطبيقات الرائدة في الصناعة

إن NGINX هي بالفعل بوابة API الأكثر استخدامًا في الصناعة - في استطلاعنا الأخير ، أبلغ 40٪ من عملائنا عن استخدام NGINX كبوابة API.

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

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

تدعم تقنية NGINX بوابات مطور Capital One - Devexchange . سمح هذا لـ Capital One بتوسيع نطاق تطبيقاته إلى 12 مليار عملية يوميًا مع ذروة 2 مليون عملية في الثانية مع تأخير يتراوح ما بين 10 إلى 30 مللي ثانية. يدعم NGINX أيضًا بوابة Adobe لمطوري Adobe I / O. يسمح Adobe I / O للمطورين بدمج وتوسيع وإنشاء التطبيقات استنادًا إلى منتجات وتقنيات Adobe باستخدام واجهة برمجة التطبيقات. تعالج المنصة ملايين الطلبات يوميًا مع تأخير بسيط.

إليك ترجمة ، كيف تحبها؟ نحن في انتظار تعليقاتك ودعوتك تقليديًا إلى فتح درس ، والذي سيعقد في 11 فبراير بواسطة مدرسنا إيغور ساخانكوف .

Source: https://habr.com/ru/post/ar439222/


All Articles