Муаррифии InterSystems API Manager (+ вебинар)

Мо ба наздикӣ InterSystems API Manager (IAM) -ро баровардем, ки ҷузъи нави InterSystems IRIS Platform маълумот мебошад, ки аёният, назорат ва идоракунии трафики веб API-ро дар инфрасохтори IT таъмин мекунад.

Дар ин мақола, ман ба шумо нишон медиҳам, ки чӣ гуна IAM-ро танзим кунед ва баъзе аз қобилиятҳои зиёдеро, ки бо IAM барои шумо дастрасанд, нишон диҳед. InterSystems API Manager ба шумо имкон медиҳад, ки:

  • API-ро назорат кунед, бифаҳмед, ки кӣ API-ро истифода мебарад, кадом APIҳо маъмултаринанд ва кадомашон такмилро талаб мекунанд.
  • Назорати кӣ API-ро истифода мебарад ва истифодаи API-ро аз маҳдудиятҳои оддии дастрасӣ то маҳдудиятҳои ба дархост асосёфта маҳдуд мекунад - шумо назорати фармоишӣ доред ва метавонед ба тағир додани намунаҳои истеъмоли API зуд ҷавоб диҳед.
  • API-ҳои бехатарро бо истифода аз механизмҳои мутамаркази амниятӣ ба монанди OAuth2.0, LDAP ё аутентификатсияи калидӣ.
  • Барои таҳиягарони тарафи сеюм осонтар гардонед ва бо кушодани портали махсуси таҳиякунанда ба онҳо таҷрибаи олии API пешниҳод кунед.
  • API-ро миқёс кунед ва таъхири ҳадди ақали посухро таъмин кунед.

Идоракунии API барои гузариш ба меъмории SOA ё микросервис муҳим аст, ки интегратсияро байни хидматҳои инфиродӣ (микро) содда карда, онҳоро барои ҳама истеъмолкунандагони беруна ва дохилӣ дастрас мекунад. Дар натиҷа, API-ҳои нав эҷод, нигоҳдорӣ ва истеъмол осонтар мешаванд.

Агар шумо аллакай InterSystems IRIS-ро истифода баред, шумо метавонед имконоти IAM-ро ба иҷозатномаи худ илова кунед. Опсияи IAM барои муштариёни InterSystems IRIS ройгон аст, аммо шумо бояд калиди литсензияи нави InterSystemsро дархост кунед, то истифодаи IAM-ро оғоз кунед.

Агар шумо то ҳол InterSystems IRIS-ро истифода набаред ва ният доред, ки менеҷери InterSystems API-ро санҷед, лутфан бо 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 консепсияи ҷойҳои кориро барои тақсимоти API ба модулҳо ва/ё фармонҳо дастгирӣ мекунад. Ба фазои кории "пешфарз" гузаред, ки мо барои таҷрибаҳои худ истифода хоҳем кард.

Муаррифии InterSystems API Manager (+ вебинар)

Шумораи дархостҳо барои ин фазои корӣ ҳоло ҳам сифр аст, аммо шумо дар бораи мафҳумҳои асосии IAM дар менюи чап тасаввурот хоҳед гирифт. Ду унсури аввал: Хидматҳо ва Роҳҳо муҳимтаринанд:

  • Хидмат API аст, ки мо мехоҳем дастрасӣ ба истеъмолкунандагонро таъмин кунем. Ҳамин тариқ, API REST дар InterSystems IRIS як хидмат аст, масалан, Google API, агар шумо хоҳед, ки онро истифода баред.
  • Масир қарор қабул мекунад, ки дархостҳои воридотӣ бояд ба кадом хидмат интиқол дода шаванд. Ҳар як масир маҷмӯи мушаххаси шартҳоро дорад ва агар онҳо иҷро шаванд, дархост ба Хадамоти дахлдор фиристода мешавад. Масалан, Масир метавонад ба IP, домени ирсолкунанда, усулҳои HTTP, қисмҳои URI ё маҷмӯи ин мисолҳо мувофиқат кунад.

хизматрасонӣ

Биёед хидмати InterSystems IRIS-ро бо арзишҳои зерин эҷод кунем:

соҳа
арзиши
Шарҳи

ном
Айрис
Номи хидмат

мизбон
IP
Хост сервери InterSystems IRIS ё IP

бандаргоҳ
52773
Веб-порти сервери InterSystems IRIS

роҳ
/api/atelier
Роҳи реша

протокол
http
Протокол

Қиматҳои боқимондаро ҳамчун пешфарз гузоред. Тугмаро пахш кунед Create ва ID-и Хидмати сохташударо нависед.

Роуминг

Акнун биёед як масир эҷод кунем:

соҳа
арзиши
Шарҳи

роҳ
/api/atelier
Роҳи реша

протокол
http
Протокол

service.id
роҳнамо аз 3
Хидмат (ID аз қадами қаблӣ)

Қиматҳои боқимондаро ҳамчун пешфарз гузоред. Тугмаро пахш кунед Create ва ID-и хатсайри сохташударо нависед. Бо нобаёнӣ, 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 нав аст, ҳоло ягон плагинҳои фаъол вуҷуд надоранд. Пас, ба қадами оянда тавассути клик "Васлкунаки нав" гузаред.

Плагине, ки ба мо лозим аст, дар категорияи "Назорати ҳаракати нақлиёт" ҷойгир аст ва "Маҳдуд кардани меъёр" номида мешавад. Онро интихоб кунед. Дар ин ҷо шумо метавонед чанд танзимотро танзим кунед, аммо мо танҳо ба ду соҳа аҳамият медиҳем:

соҳа
арзиши
Шарҳи

route_id
ID
ID масир

config.minute
5
Шумораи дархостҳо дар як дақиқа

Ҳамааш ҳамин. Васлкунак танзим ва фаъол аст. Дар хотир доред, ки мо метавонем фосилаҳои гуногуни вақтро интихоб кунем, ба монанди дақиқа, соат ё рӯз. Танзимотро метавон якҷоя кард (масалан, 1000 дархост дар як соат ва ҳамзамон 100 дархост дар як дақиқа). Ман дақиқаҳоро интихоб кардам, зеро он тафтиши кори плагинро осон мекунад.

Агар шумо ҳамон дархостро дубора дар Postman фиристед, шумо хоҳед дид, ки ҷавоб бо 2 сарлавҳаи иловагӣ бармегардад:

  • XRateLimit-Limit-дақиқа: 5
  • XRateLimit-дақиқаи боқимонда: 4

Ин ба муштарӣ мегӯяд, ки он метавонад дар як дақиқа то 5 дархост пешниҳод кунад ва дар вақти ҷорӣ 4 дархости дигар кунад.

Муаррифии InterSystems API Manager (+ вебинар)

Агар шумо як дархостро такрор ба такрор фиристед, шумо дар ниҳоят квотаи дастрас тамом мешавед ва ба ҷои он рамзи ҳолати HTTP-и 429-ро бо мақоми ҷавобии зерин мегиред:

Муаррифии InterSystems API Manager (+ вебинар)

Як дақиқа интизор шавед ва шумо метавонед дубора дархост пешниҳод кунед.

Ин як механизми қулайест, ки ба шумо имкон медиҳад:

  • Сарпӯшро аз шиддати сарборӣ муҳофизат кунед.
  • Ба мизоҷон бигӯед, ки онҳо чӣ қадар дархост карда метавонанд.
  • API-ро монетизатсия кунед.

Шумо метавонед арзишҳоро барои фосилаҳои гуногуни вақт муқаррар кунед ва ба ин васила трафики API-ро дар тӯли як муддати муайян ҳамвор кунед. Фарз мекунем, ки шумо дар як масири мушаххас 600 дархостро иҷозат медиҳед. Ба ҳисоби миёна дар як дақиқа 10 дархост вуҷуд дорад. Аммо ҳеҷ чиз ба муштарӣ халал намерасонад, ки дар дақиқаи аввали соат ҳамаи 600 дархостро иҷро кунад. Шояд ин ба шумо лозим аст. Шояд шумо мехоҳед, ки дар тӯли як соат бори бештаре ба даст оред. Бо гузоштани арзиши майдон config.minute Арзиши 20 кафолат медиҳад, ки корбарони шумо на бештар аз 20 дархост дар як дақиқа ва 600 дархост дар як соат. Ин имкон медиҳад, ки суръати хурд дар фосилаи як дақиқа дар муқоиса бо ҷараёни пурраи миёнаи 10 дархост дар як дақиқа, аммо корбарон наметавонанд квотаи ҳарсоатаро барои як дақиқа истифода баранд. Акнун ба онҳо ҳадди аққал 30 дақиқа лозим аст, то ҳамаи дархостҳои худро истифода баранд. Мизоҷон барои ҳар як фосилаи вақти муайян сарлавҳаҳои иловагӣ мегиранд, масалан:

Сарлавҳаи HTTP
арзиши

X-RateLimit-Limit-соат
600

X-RateLimit-соат боқимонда
595

X-RateLimit-Limit-дақиқа
20

X-RateLimit-Боқимонда-дақиқа
16

Албатта, роҳҳои гуногуни танзим кардани маҳдудиятҳои дархост вобаста ба он чизе, ки шумо мехоҳед ба даст оред, вуҷуд дорад.

натиҷаҳои

Ман дар ин ҷо тамом мекунам, ман фикр мекунам, ки барои мақолаи аввал дар бораи InterSystems API Manager маводи кофӣ мавҷуд аст. Мо танҳо яке аз зиёда аз 40 плагинҳоро истифода мебарем. Бисёр чизҳои ҷолибе ҳастанд, ки шумо метавонед бо IAM иҷро кунед:

  • Механизми марказии аутентификатсияро барои ҳамаи API-ҳои худ илова кунед.
  • Миқёси сарборро бо истифода аз мувозинати сарборӣ дар саросари хидматҳои гуногун.
  • Пеш аз навсозии пурра ба аудиторияи санҷишӣ функсияҳои нав ва ислоҳи хатогиҳо илова кунед.
  • Таҳиягарони дохилӣ ва беруниро бо веб-портали махсусе, ки ҳама API-ҳоро ҳуҷҷатгузорӣ мекунанд, таъмин кунед.
  • Дархостҳои кэш барои кам кардани вақти посух ва кам кардани сарбории пуштибони система.

мурожиат

Вебинар

Мо шуморо ба вебинари "Идоракунии API бо InterSystems API Management", ки 21 ноябр соати 10:00 ба вақти Маскав (GMT+3) баргузор мешавад, даъват мекунем.
InterSystems API Manager (IAM) як ҷузъи нави Платформаи маълумотҳои InterSystems IRIS мебошад, ки мониторинг, назорат ва идоракунии трафикро ба/аз веб API дар дохили инфрасохтори IT таъмин мекунад. Дар вебинар мо имкониятҳои калидии InterSystems API Managementро нишон медиҳем:

  • Воситаҳои мониторинги трафики API.
  • Назорати трафики API, аз ҷумла назорати фарохмаҷро, маҳдуд кардани шумораи зангҳои API, нигоҳ доштани рӯйхати рӯйхати иҷозатдодашуда ва радшудаи суроғаҳои IP ва ғайра.
  • абзорҳои конфигуратсияи амнияти API.
  • Портали таҳиякунанда барои нашри ҳуҷҷатҳои интерактивии API.
  • Нуқтаи ягонаи дастрасӣ ба API.

Вебинар барои меъморон, таҳиягарон ва маъмурони система пешбинӣ шудааст.

Бақайдгирӣ талаб карда мешавад!

Манбаъ: will.com

Илова Эзоҳ