تقديم InterSystems API Manager (+ ندوة عبر الإنترنت)

لقد أصدرنا مؤخرًا InterSystems API Manager (IAM)، وهو مكون جديد في InterSystems IRIS Data Platform الذي يوفر الرؤية والتحكم وإدارة حركة مرور واجهة برمجة تطبيقات الويب عبر البنية التحتية لتكنولوجيا المعلومات.

سأوضح لك في هذه المقالة كيفية إعداد IAM وإظهار بعض الإمكانات العديدة المتوفرة لك مع IAM. يتيح لك InterSystems API Manager ما يلي:

  • راقب واجهة برمجة التطبيقات (API)، وافهم من يستخدم واجهة برمجة التطبيقات (API)، وأي واجهات برمجة التطبيقات (API) هي الأكثر شيوعًا، وأي منها تتطلب التحسين.
  • التحكم في من يستخدم واجهة برمجة التطبيقات والحد من استخدام واجهة برمجة التطبيقات بدءًا من قيود الوصول البسيطة إلى القيود القائمة على الطلب - لديك تحكم مخصص ويمكنك الاستجابة بسرعة لأنماط استهلاك واجهة برمجة التطبيقات المتغيرة.
  • واجهات برمجة التطبيقات الآمنة باستخدام آليات الأمان المركزية مثل OAuth2.0 أو LDAP أو مصادقة الرمز المميز.
  • اجعل الأمر أسهل لمطوري الطرف الثالث وزودهم بتجربة واجهة برمجة التطبيقات (API) المتميزة من خلال فتح بوابة مخصصة للمطورين.
  • قم بتوسيع نطاق واجهة برمجة التطبيقات (API) وتأكد من الحد الأدنى من زمن الاستجابة للاستجابة.

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

إذا كنت تستخدم InterSystems IRIS بالفعل، فيمكنك إضافة خيار IAM إلى الترخيص الخاص بك. يعد خيار IAM مجانيًا لعملاء InterSystems IRIS، ولكن يجب عليك طلب مفتاح ترخيص جديد من InterSystems لبدء استخدام IAM.

إذا لم تكن تستخدم InterSystems IRIS بعد وتخطط لتجربة InterSystems API Manager، فيرجى الاتصال بـ InterSystems.

البدء والتثبيت

يمكن لعملاء InterSystems تنزيل توزيع IAM من موقع الويب WRC قسم "توزيع البرامج" وتشغيله كحاوية Docker. الحد الأدنى لمتطلبات النظام:

في البداية، تحتاج إلى تنزيل صورة Docker (مهم! الأرشيف مع WRC ليس صورة Docker، تحتاج إلى فك ضغطها، توجد صورة Docker بالداخل):

docker load -i iam_image.tar

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

إعداد InterSystems IRIS:

  • تمكين تطبيق الويب /api/IAM
  • تمكين المستخدم IAM
  • تغيير كلمة مرور المستخدم IAM

الآن لنبدأ حاوية IAM. في الأرشيف سوف تجد البرامج النصية iam-setup لنظام التشغيل Windows و Unix (و Mac). ستساعدك هذه البرامج النصية على تعيين متغيرات البيئة بشكل صحيح، مما يسمح لحاوية IAM بتأسيس اتصال مع InterSystems IRIS. فيما يلي مثال للبرنامج النصي الذي يعمل على نظام Mac:

source ./iam-setup.sh 
Welcome to the InterSystems IRIS and InterSystems API Manager (IAM) setup script.
This script sets the ISC_IRIS_URL environment variable that is used by the IAM container to get the IAM license key from InterSystems IRIS.
Enter the full image repository, name and tag for your IAM docker image: intersystems/iam:0.34-1-1
Enter the IP address for your InterSystems IRIS instance. The IP address has to be accessible from within the IAM container, therefore, do not use "localhost" or "127.0.0.1" if IRIS is running on your local machine. Instead use the public IP address of your local machine. If IRIS is running in a container, use the public IP address of the host environment, not the IP address of the IRIS container. xxx.xxx.xxx.xxx               
Enter the web server port for your InterSystems IRIS instance: 52773
Enter the password for the IAM user for your InterSystems IRIS instance: 
Re-enter your password: 
Your inputs are:
Full image repository, name and tag for your IAM docker image: intersystems/iam:0.34-1-1
IP address for your InterSystems IRIS instance: xxx.xxx.xxx.xxx
Web server port for your InterSystems IRIS instance: 52773
Would you like to continue with these inputs (y/n)? y
Getting IAM license using your inputs...
Successfully got IAM license!
The ISC_IRIS_URL environment variable was set to: http://IAM:****************@xxx.xxx.xxx.xxx:52773/api/iam/license
WARNING: The environment variable is set for this shell only!
To start the services, run the following command in the top level directory: docker-compose up -d
To stop the services, run the following command in the top level directory: docker-compose down
URL for the IAM Manager portal: http://localhost:8002

كما ترى، كل ما تحتاجه للبدء هو اسم الصورة الكامل وعنوان IP ومنفذ InterSystems IRIS وكلمة المرور لمستخدم IAM.

بدلاً من تشغيل برنامج نصي، يمكنك تعيين متغيرات البيئة يدويًا:

ISC_IAM_IMAGE=intersystems/iam:0.34-1-1
ISC_IRIS_URL=http://IAM:<PASS>@<IP>:<PORT>/api/iam/license

إطلاق

الآن لنبدأ تشغيل IAM عن طريق تشغيل الأمر:

docker-compose up -d

ينظم هذا الأمر حاويات IAM ويضمن أن كل شيء يعمل بشكل صحيح. يتم التحقق من حالة الحاويات باستخدام الأمر:

docker ps

افتح واجهة الإدارة في متصفحك localhost:8002.

تقديم InterSystems API Manager (+ ندوة عبر الإنترنت)

إنها فارغة الآن لأنها عقدة جديدة تمامًا. دعونا نغير ذلك. يدعم IAM مفهوم مساحات العمل لتقسيم واجهات برمجة التطبيقات إلى وحدات و/أو أوامر. انتقل إلى مساحة العمل "الافتراضية" التي سنستخدمها في تجاربنا.

تقديم InterSystems API Manager (+ ندوة عبر الإنترنت)

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

  • الخدمة هي واجهة برمجة التطبيقات (API) التي نريد توفير الوصول إليها للمستهلكين. وبالتالي، فإن REST API في InterSystems IRIS هي خدمة، كما هو الحال، على سبيل المثال، Google API إذا كنت تريد استخدامها.
  • يقرر المسار الخدمة التي يجب إعادة توجيه الطلبات الواردة إليها. يحتوي كل مسار على مجموعة محددة من الشروط، وإذا تم استيفائها، يتم إرسال الطلب إلى الخدمة المقابلة. على سبيل المثال، يمكن أن يطابق المسار عنوان IP أو مجال المرسل أو أساليب HTTP أو أجزاء من URI أو مجموعة من هذه الأمثلة.

خدمة

لنقم بإنشاء خدمة InterSystems IRIS بالقيم التالية:

حقل
قيمة
وصف

الاسم
قزحية
اسم الخدمة

مضيف
IP
مضيف خادم InterSystems IRIS أو IP

ميناء
52773
منفذ الويب لخادم InterSystems IRIS

مسار
/api/atelier
مسار الجذر

بروتوكول
HTTP
بروتوكول

اترك القيم المتبقية كقيمة افتراضية. انقر فوق الزر Create واكتب معرف الخدمة التي تم إنشاؤها.

طريق

الآن لنقم بإنشاء طريق:

حقل
قيمة
وصف

مسار
/api/atelier
مسار الجذر

بروتوكول
HTTP
بروتوكول

معرف الخدمة
دليل من 3
الخدمة (المعرف من الخطوة السابقة)

اترك القيم المتبقية كقيمة افتراضية. انقر فوق الزر Create واكتب معرف المسار الذي تم إنشاؤه. افتراضيًا، يستمع IAM للطلبات الواردة على المنفذ 8000. والآن يتم إرسال الطلبات إلى http://localhost:8000 والبدء بـ /api/atelier يتم إعادة توجيهها إلى InterSystems IRIS.

تجريب

لنحاول إنشاء طلب في عميل REST (أنا أستخدم ساعي البريد).

تقديم InterSystems API Manager (+ ندوة عبر الإنترنت)

دعنا نرسل طلب GET إلى http://localhost:8000/api/atelier/ (لا تنسى / في النهاية) وتلقي رد من InterSystems IRIS. يمر كل طلب عبر IAM الذي يجمع المقاييس:

  • رمز حالة HTTP.
  • تأخير.
  • المراقبة (إذا تم تكوينها).

لقد قدمت بعض الطلبات الإضافية (بما في ذلك طلبين لنقاط نهاية غير موجودة مثل /api/atelier/est/)، وتظهر النتائج على الفور في لوحة التحكم:

تقديم InterSystems API Manager (+ ندوة عبر الإنترنت)

العمل مع الإضافات

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

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

الحد من عدد الطلبات

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

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

حقل
قيمة
وصف

معرّف_المسار
ID
معرف الطريق

دقيقة التكوين
5
عدد الطلبات في الدقيقة

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

إذا قمت بإرسال نفس الطلب مرة أخرى في Postman، فسترى أن الرد يتم إرجاعه برأسين إضافيين:

  • XRateLimit-Limit-min: 5
  • XRateLimit-الدقيقة المتبقية: 4

يخبر هذا العميل أنه يمكنه تقديم ما يصل إلى 5 طلبات في الدقيقة ويمكنه تقديم 4 طلبات أخرى في الفترة الزمنية الحالية.

تقديم InterSystems API Manager (+ ندوة عبر الإنترنت)

إذا قمت بتقديم نفس الطلب مرارًا وتكرارًا، فسوف تنفد حصتك المتاحة في النهاية وستتلقى بدلاً من ذلك رمز حالة HTTP رقم 429 مع نص الاستجابة التالي:

تقديم InterSystems API Manager (+ ندوة عبر الإنترنت)

انتظر لحظة وستتمكن من تقديم الطلبات مرة أخرى.

هذه آلية ملائمة تسمح لك بما يلي:

  • حماية الواجهة الخلفية من زيادة الأحمال.
  • أخبر العملاء بعدد الطلبات التي يمكنهم تقديمها.
  • تحقيق الدخل من واجهة برمجة التطبيقات (API).

يمكنك تعيين قيم لفترات زمنية مختلفة وبالتالي تسهيل حركة مرور واجهة برمجة التطبيقات خلال فترة زمنية معينة. لنفترض أنك تسمح بـ 600 طلب في الساعة على طريق معين. في المتوسط ​​هناك 10 طلبات في الدقيقة. لكن لا شيء يمنع العميل من إكمال جميع الطلبات البالغ عددها 600 طلب في الدقيقة الأولى من الساعة. ربما هذا هو ما تحتاجه. قد ترغب في تحقيق حمل أكثر توازنًا على مدار ساعة. عن طريق تحديد قيمة الحقل config.minute تضمن القيمة 20 ألا يقوم المستخدمون بتقديم أكثر من 20 طلبًا في الدقيقة و600 طلب في الساعة. يسمح هذا بحدوث زيادات صغيرة في فاصل زمني مدته دقيقة واحدة مقارنة بمتوسط ​​تدفق كامل يبلغ 10 طلبات في الدقيقة، ولكن لا يمكن للمستخدمين استخدام الحصة النسبية بالساعة لمدة دقيقة واحدة. سيحتاجون الآن إلى 30 دقيقة على الأقل لاستخدام جميع طلباتهم. سيتلقى العملاء رؤوسًا إضافية لكل فترة زمنية محددة، على سبيل المثال:

رأس HTTP
قيمة

X-RateLimit-Limit-hour
600

X-RateLimit-الساعة المتبقية
595

X-RateLimit-Limit-دقيقة
20

X-RateLimit-الدقيقة المتبقية
16

بالطبع، هناك العديد من الطرق المختلفة لتكوين حدود الاستعلام اعتمادًا على ما تريد تحقيقه.

النتائج

سأنتهي هنا، أعتقد أن هناك ما يكفي من المواد للمقالة الأولى حول InterSystems API Manager. لقد استخدمنا واحدًا فقط من بين أكثر من 40 مكونًا إضافيًا. هناك العديد من الأشياء المثيرة للاهتمام التي يمكنك القيام بها باستخدام IAM:

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

مراجع

الويبينار

ندعوك لحضور الندوة عبر الإنترنت "إدارة API مع InterSystems API Management"، والتي ستعقد في 21 نوفمبر الساعة 10:00 بتوقيت موسكو (GMT+3).
يعد InterSystems API Manager (IAM) مكونًا جديدًا في InterSystems IRIS Data Platform الذي يوفر المراقبة والتحكم وإدارة حركة المرور من/إلى واجهات برمجة تطبيقات الويب داخل البنية التحتية لتكنولوجيا المعلومات. سنعرض في الندوة عبر الويب القدرات الرئيسية لإدارة InterSystems API:

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

الندوة عبر الويب مخصصة للمهندسين المعماريين والمطورين ومسؤولي النظام.

التسجيل مطلوب!

المصدر: www.habr.com

إضافة تعليق