InterSystems API प्रबन्धक (+ वेबिनार) को परिचय

हामीले भर्खरै InterSystems API प्रबन्धक (IAM), InterSystems IRIS डाटा प्लेटफर्मको नयाँ कम्पोनेन्ट जारी गर्‍यौं जसले IT पूर्वाधारमा वेब API ट्राफिकको दृश्यता, नियन्त्रण र व्यवस्थापन प्रदान गर्दछ।

यस लेखमा, म तपाईंलाई कसरी IAM सेटअप गर्ने र IAM सँग उपलब्ध धेरै क्षमताहरू मध्ये केही प्रदर्शन गर्ने देखाउनेछु। InterSystems API प्रबन्धकले तपाईंलाई अनुमति दिन्छ:

  • Наблюдать за API, понимать кто использует API, какие API наиболее популярны, а какие требуют доработки.
  • Контролировать кто использует API и ограничивать использование API от простого ограничения доступа до ограничений в зависимости от запроса — у вас есть настраиваемый контроль и вы можете быстро реагировать на изменения паттернов потребления API.
  • OAuth2.0, LDAP वा कुञ्जी टोकन प्रमाणीकरण जस्ता केन्द्रीकृत सुरक्षा संयन्त्रहरू प्रयोग गरेर एपीआईहरू सुरक्षित गर्नुहोस्।
  • तेस्रो-पक्ष विकासकर्ताहरूको लागि सजिलो बनाउनुहोस् र समर्पित विकासकर्ता पोर्टल खोलेर उनीहरूलाई उत्कृष्ट API अनुभव प्रदान गर्नुहोस्।
  • API मापन गर्नुहोस् र न्यूनतम प्रतिक्रिया विलम्बता सुनिश्चित गर्नुहोस्।

API व्यवस्थापन SOA वा माइक्रोसर्भिस आर्किटेक्चरमा संक्रमणको लागि आवश्यक छ, व्यक्तिगत (माइक्रो) सेवाहरू बीचको एकीकरणलाई सरल बनाउँदै, तिनीहरूलाई सबै बाह्य र आन्तरिक उपभोक्ताहरूका लागि उपलब्ध गराउने। नतिजाको रूपमा, नयाँ API हरू सिर्जना गर्न, मर्मत गर्न र उपभोग गर्न सजिलो हुन्छ।

यदि तपाइँ पहिले नै InterSystems IRIS प्रयोग गर्दै हुनुहुन्छ भने, तपाइँ आफ्नो इजाजतपत्रमा IAM विकल्प थप्न सक्नुहुन्छ। IAM विकल्प InterSystems IRIS ग्राहकहरूका लागि निःशुल्क छ, तर तपाईंले IAM प्रयोग गर्न सुरु गर्न InterSystems बाट नयाँ इजाजतपत्र कुञ्जी अनुरोध गर्नुपर्छ।

यदि तपाइँ अझै InterSystems IRIS प्रयोग गरिरहनु भएको छैन र InterSystems API प्रबन्धक प्रयास गर्ने योजना गर्दै हुनुहुन्छ भने, कृपया InterSystems लाई सम्पर्क गर्नुहोस्।

सुरु र स्थापना गर्दै

InterSystems ग्राहकहरूले वेबसाइटबाट IAM वितरण डाउनलोड गर्न सक्छन् WRC खण्ड "सफ्टवेयर वितरण" र डकर कन्टेनरको रूपमा चलाउनुहोस्। न्यूनतम प्रणाली आवश्यकताहरू:

सुरुमा, तपाईंले डकर छवि डाउनलोड गर्न आवश्यक छ (महत्वपूर्ण! WRC सँगको अभिलेख डकर छवि होइन, तपाईंले यसलाई अनप्याक गर्न आवश्यक छ, त्यहाँ डकर छवि भित्र छ):

docker load -i iam_image.tar

Эта команда сделает образ IAM доступным для последующего использования на вашем сервере. IAM работает как отдельный контейнер, поэтому вы можете масштабировать его независимо от InterSystems IRIS. Для запуска IAM требуется доступ к InterSystems IRIS для загрузки лицензии.

InterSystems IRIS सेटअप गर्नुहोस्:

  • Включите веб-приложение /api/IAM
  • प्रयोगकर्ता सक्षम गर्नुहोस् IAM
  • प्रयोगकर्ता पासवर्ड परिवर्तन गर्नुहोस् IAM

Теперь запустим контейнер IAM. В архиве вы найдете скрипты iam-setup विन्डोज र युनिक्स (र म्याक) को लागी। यी स्क्रिप्टहरूले IAM कन्टेनरलाई InterSystems IRIS सँग जडान स्थापना गर्न अनुमति दिँदै वातावरण चरहरू सही रूपमा सेट गर्न मद्दत गर्नेछ। यहाँ म्याकमा चलिरहेको स्क्रिप्टको उदाहरण हो:

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 प्रबन्धक (+ वेबिनार) को परिचय

यो अहिलेको लागि खाली छ किनभने यो पूर्ण रूपमा नयाँ नोड हो। यसलाई परिवर्तन गरौं। IAM ले API लाई मोड्युल र/वा आदेशहरूमा विभाजन गर्न कार्यस्थानको अवधारणालाई समर्थन गर्दछ। "पूर्वनिर्धारित" कार्यस्थानमा जानुहोस् जुन हामीले हाम्रा प्रयोगहरूको लागि प्रयोग गर्नेछौं।

InterSystems API प्रबन्धक (+ वेबिनार) को परिचय

Количество запросов для этого рабочего пространства по-прежнему равно нулю, но вы получите представление об основных концепциях IAM в меню слева. Первые два элемента: Сервисы (Services) и Маршруты (Routes) наиболее важны:

  • सेवा भनेको API हो जसमा हामी उपभोक्ताहरूलाई पहुँच प्रदान गर्न चाहन्छौं। यसैले, InterSystems IRIS मा REST API एक सेवा हो, जस्तै, उदाहरणका लागि, यदि तपाइँ यसलाई प्रयोग गर्न चाहनुहुन्छ भने Google API।
  • Маршрут (Route) решает, в какой Сервис должны быть перенаправлены входящие запросы. Каждый Маршрут имеет определенный набор условий, и если они выполнены, запрос направляется в соответствующий Сервис. Например, Маршрут может совпадать с IP, доменом отправителя, HTTP-методами, частями URI или комбинацией указанных примеров.

सेवा

निम्न मानहरूसँग इन्टरसिस्टम IRIS सेवा सिर्जना गरौं:

क्षेत्र
मूल्य
विवरण

नाम
आइरिस
सेवा नाम

पाहुना
IP
InterSystems IRIS सर्भर होस्ट वा ip

पोर्ट
52773
InterSystems IRIS सर्भर वेब पोर्ट

बाटो
/api/atelier
Корневой путь

प्रोटोकल
http
प्रोटोकल

Остальные значения оставьте по умолчанию. Нажмите кнопку Create र सिर्जना गरिएको सेवाको आईडी लेख्नुहोस्।

मार्ग

अब एउटा मार्ग बनाउनुहोस्:

क्षेत्र
मूल्य
विवरण

बाटो
/api/atelier
Корневой путь

प्रोटोकल
http
प्रोटोकल

service.id
guid from 3
सेवा (अघिल्लो चरणबाट आईडी)

Остальные значения оставьте по умолчанию. Нажмите кнопку Create र सिर्जना गरिएको मार्गको ID लेख्नुहोस्। पूर्वनिर्धारित रूपमा, IAM पोर्ट 8000 मा आगमन अनुरोधहरू सुन्छ। अब अनुरोधहरू पठाइयो http://localhost:8000 र सुरु गर्दै /api/atelier перенаправляются в InterSystems IRIS.

परीक्षण गर्दै

REST क्लाइन्टमा अनुरोध सिर्जना गर्ने प्रयास गरौं (म प्रयोग गर्दैछु हुलाकी).

InterSystems API प्रबन्धक (+ वेबिनार) को परिचय

Отправим GET запрос на http://localhost:8000/api/atelier/ (नबिर्सनु / на конце) и получим ответ от InterSystems IRIS. Каждый запрос проходит через IAM который собирает метрики:

  • HTTP स्थिति कोड।
  • ढिला।
  • Мониторинг (если настроен).

Я сделал еще несколько запросов (включая два запроса на несуществующие конечные точки, такие как /api/atelier/est/), результаты сразу видны на панели мониторинга:

InterSystems API प्रबन्धक (+ वेबिनार) को परिचय

प्लगइनहरूसँग काम गर्दै

अब जब हामीसँग रुट कन्फिगर गरिएको छ, हामी हाम्रो API व्यवस्थापन गर्न सक्छौं। हामी हाम्रो सेवा पूरक हुने सुविधाहरू थप्न सक्छौं।

Наиболее распространенным способом изменения поведения API является добавление плагина. Плагины изолируют отдельные функциональные возможности и могут быть подключены к IAM как глобально, так и только к отдельным сущностям, таким как Пользователь (группа пользователей), Сервис или Маршрут. Мы начнем с добавления плагина «Rate Limiting» (Ограничение количества запросов) в Маршрут. Для установления связи между подключаемым плагином и маршрутом нам нужен уникальный идентификатор (ID) маршрута.

अनुरोधहरूको संख्या सीमित गर्दै

बायाँ साइडबार मेनुमा प्लगइनहरू क्लिक गर्नुहोस्। तपाईंले यो स्क्रिनमा सबै सक्रिय प्लगइनहरू देख्न सक्नुहुन्छ, तर यो IAM सर्भर नयाँ भएकोले, त्यहाँ कुनै सक्रिय प्लगइनहरू छैनन्। त्यसैले "नयाँ प्लगइन" मा क्लिक गरेर अर्को चरणमा जानुहोस्।

हामीलाई चाहिने प्लगइन "ट्राफिक नियन्त्रण" श्रेणीमा छ र यसलाई "दर लिमिटिङ" भनिन्छ। यसलाई चयन गर्नुहोस्। तपाईंले यहाँ सेट गर्न सक्नुहुने केही सेटिङहरू छन्, तर हामी दुईवटा क्षेत्रहरूको मात्र ख्याल राख्छौं:

क्षेत्र
मूल्य
विवरण

रूट_आईडी
ID
मार्ग आईडी

config.minute
5
Количество запросов в минуту

यति नै। प्लगइन कन्फिगर र सक्रिय छ। ध्यान दिनुहोस् कि हामी विभिन्न समय अन्तरालहरू छनौट गर्न सक्छौं, जस्तै एक मिनेट, एक घण्टा वा एक दिन। सेटिङहरू जोड्न सकिन्छ (उदाहरणका लागि, प्रति घण्टा 1000 अनुरोधहरू र एकै समयमा 100 अनुरोधहरू प्रति मिनेट)। मैले मिनेटहरू रोजें किनभने यसले प्लगइनको कार्यक्षमता जाँच गर्न सजिलो बनाउँछ।

Если вы снова отправите тот же самый запрос в Postman, вы увидите, что ответ возвращается с 2 дополнительными заголовками:

  • XRateLimit-सीमा-मिनेट: 5
  • XRateLimit-बाँकी-मिनेट: 4

यसले ग्राहकलाई प्रति मिनेट ५ वटा अनुरोध गर्न सक्छ र हालको टाइम स्लटमा ४ थप अनुरोध गर्न सक्छ भनी बताउँछ।

InterSystems API प्रबन्धक (+ वेबिनार) को परिचय

यदि तपाइँ उही अनुरोध बारम्बार गर्नुहुन्छ भने, तपाइँ अन्ततः उपलब्ध कोटा समाप्त हुनुहुनेछ र यसको सट्टा निम्न प्रतिक्रिया निकायको साथ 429 को HTTP स्थिति कोड प्राप्त गर्नुहुनेछ:

InterSystems API प्रबन्धक (+ वेबिनार) को परिचय

एक मिनेट पर्खनुहोस् र तपाइँ पुन: अनुरोधहरू पेश गर्न सक्षम हुनुहुनेछ।

यो एक सुविधाजनक संयन्त्र हो जसले तपाईंलाई अनुमति दिन्छ:

  • ब्याकइन्डलाई लोड सर्जबाट सुरक्षित गर्नुहोस्।
  • ग्राहकहरूलाई उनीहरूले कति अनुरोधहरू गर्न सक्छन् भन्नुहोस्।
  • Монетизировать API.

Вы можете задавать значения для различных временных интервалов и таким образом сглаживать API трафик за определенный период времени. Допустим, вы разрешаете 600 запросов в час по определенному Маршруту. В среднем выходит 10 запросов в минуту. Но ничто не мешает клиенту выполнить все 600 запросов в первую минуту часа. Может быть, это то, что нужно. Возможно, вы захотите достичь более равномерной нагрузки в течение часа. Установив значение поля config.minute 20 को मानले सुनिश्चित गर्दछ कि तपाइँका प्रयोगकर्ताहरूले प्रति मिनेट 20 भन्दा बढी अनुरोधहरू र प्रति घण्टा 600 अनुरोधहरू गर्दैनन्। यसले प्रति मिनेट 10 अनुरोधहरूको पूर्ण औसत प्रवाहको तुलनामा एक मिनेट अन्तरालमा सानो स्पाइक्सको लागि अनुमति दिन्छ, तर प्रयोगकर्ताहरूले एक मिनेटको लागि घण्टाको कोटा प्रयोग गर्न सक्दैनन्। अब उनीहरूलाई आफ्ना सबै अनुरोधहरू प्रयोग गर्न कम्तिमा 30 मिनेट चाहिन्छ। ग्राहकहरूले प्रत्येक निर्दिष्ट समय अन्तरालको लागि अतिरिक्त हेडरहरू प्राप्त गर्नेछन्, उदाहरणका लागि:

HTTP Заголовок
मूल्य

X-दरसीमा-सीमा-घण्टा
600

X-दरसीमा-बाँकी-घण्टा
595

X-दरसीमा-सीमा-मिनेट
20

X-RateLimit-Remaining-minute
16

निस्सन्देह, तपाईले के प्राप्त गर्न चाहानुहुन्छ भन्ने आधारमा क्वेरी सीमाहरू कन्फिगर गर्ने धेरै तरिकाहरू छन्।

निष्कर्ष

म यहाँ समाप्त गर्नेछु, मलाई लाग्छ कि त्यहाँ InterSystems API प्रबन्धक को बारे मा पहिलो लेख को लागी पर्याप्त सामग्री छ। हामीले 40 भन्दा बढी प्लगइनहरू मध्ये एउटा मात्र प्रयोग गर्यौं। तपाईंले IAM मार्फत गर्न सक्ने धेरै रोचक कुराहरू छन्:

  • Добавьте центральный механизм аутентификации для всех ваших API.
  • Масштабируйте нагрузку с помощью балансировщика к нескольким Сервисам.
  • पूर्ण अपडेट हुनु अघि परीक्षण दर्शकहरूमा नयाँ कार्यक्षमता र बग समाधानहरू थप्नुहोस्।
  • Предоставляйте внутренним и внешним разработчикам специализированный веб портал, документирующий все API.
  • Кэшируйте запросы для уменьшения времени ожидания ответа и снижения нагрузки на бэкэнд системы.

सन्दर्भ

वेबिनार

Приглашаем Вас на вебинар «Управление API с InterSystems API Management», который состоится 21 ноября в 10:00 по московскому времени (GMT+3).
InterSystems API प्रबन्धक (IAM) InterSystems IRIS डाटा प्लेटफर्मको नयाँ कम्पोनेन्ट हो जसले IT पूर्वाधार भित्र वेब API बाट/बाट ट्राफिकको निगरानी, ​​नियन्त्रण र व्यवस्थापन प्रदान गर्दछ। वेबिनारमा हामी InterSystems API व्यवस्थापनको मुख्य क्षमताहरू प्रदर्शन गर्नेछौं:

  • API यातायात निगरानी उपकरण।
  • एपीआई ट्राफिक नियन्त्रणहरू, ब्यान्डविथ नियन्त्रण सहित, एपीआई कलहरूको संख्या सीमित गर्ने, आईपी ठेगानाहरूको अनुमति र अस्वीकृत सूचीहरूको सूचीहरू कायम राख्ने, आदि।
  • API सुरक्षा कन्फिगरेसन उपकरणहरू।
  • Портал разработчиков для публикации интерактивной документации на API.
  • API मा पहुँचको एकल बिन्दु।

वेबिनार आर्किटेक्टहरू, विकासकर्ताहरू र प्रणाली प्रशासकहरूको लागि हो।

दर्ता आवश्यक छ!

स्रोत: www.habr.com

एक टिप्पणी थप्न