Hoʻolauna ʻia ʻo InterSystems API Manager (+ webinar)

Ua hoʻokuʻu hou mākou i ka InterSystems API Manager (IAM), kahi mea hou o ka InterSystems IRIS Data Platform e hāʻawi ana i ka ʻike, ka hoʻokele, a me ka hoʻokele ʻana i nā kaʻa API pūnaewele ma waena o ka ʻenehana IT.

Ma kēia ʻatikala, e hōʻike wau iā ʻoe pehea e hoʻonohonoho ai iā IAM a hōʻike i kekahi o nā mana he nui i loaʻa iā ʻoe me IAM. Hiki iā InterSystems API Manager ke:

  • E nānā i ka API, e hoʻomaopopo i ka mea hoʻohana i ka API, ʻo wai nā API i kaulana loa, a ʻo wai ka mea e pono ai ka hoʻomaikaʻi.
  • E hoʻomalu i ka mea hoʻohana i ka API a e kaupalena i ka hoʻohana ʻana i ka API mai nā ʻae ʻae maʻalahi i nā kaohi noi - loaʻa iā ʻoe ka mana maʻamau a hiki ke pane koke i ka hoʻololi ʻana i nā kumu hoʻohana API.
  • Hoʻopaʻa i nā API me ka hoʻohana ʻana i nā mīkini palekana kikowaena e like me OAuth2.0, LDAP a i ʻole Key Token Authentication.
  • E maʻalahi i nā mea hoʻomohala ʻaoʻao ʻekolu a hāʻawi iā lākou i kahi ʻike API ʻoi aku ka maikaʻi ma ka wehe ʻana i kahi puka hoʻolaha hoʻolaʻa.
  • E hoʻonui i ka API a e hōʻoia i ka liʻiliʻi o ka pane ʻana.

Pono ka hoʻokele API no ka hoʻololi ʻana i ka SOA a i ʻole ka hoʻolālā microservice, e hoʻomaʻamaʻa i ka hoʻohui ʻana ma waena o nā lawelawe pākahi (micro), e hoʻolako iā lākou i nā mea kūʻai aku waho a me loko. ʻO ka hopena, ua maʻalahi nā API hou e hana, mālama, a ʻai.

Inā ʻoe e hoʻohana nei i InterSystems IRIS, hiki iā ʻoe ke hoʻohui i ke koho IAM i kāu laikini. He manuahi ka koho IAM no nā mea kūʻai mai InterSystems IRIS, akā pono ʻoe e noi i kahi kī laikini hou mai InterSystems e hoʻomaka ai e hoʻohana iā IAM.

Inā ʻaʻole ʻoe e hoʻohana nei i InterSystems IRIS a ke hoʻolālā nei ʻoe e hoʻāʻo iā InterSystems API Manager, e ʻoluʻolu e kelepona iā InterSystems.

Hoʻomaka a hoʻokomo

Hiki i nā mea kūʻai aku InterSystems ke hoʻoiho i ka hāʻawi IAM mai ka pūnaewele WRC ʻāpana "Software Distribution" a holo ma ke ʻano he pahu Docker. Nā koi ʻōnaehana liʻiliʻi:

I ka wā mua, pono ʻoe e kiʻi i ke kiʻi Docker (He mea nui! ʻO ka waihona me WRC ʻaʻole ia he kiʻi Docker, pono ʻoe e wehe iā ia, aia kahi kiʻi Docker i loko):

docker load -i iam_image.tar

Na kēia kauoha e loaʻa ke kiʻi IAM no ka hoʻohana hope ʻana ma kāu kikowaena. Holo ʻo IAM ma ke ʻano he ipu ʻokoʻa, no laila hiki iā ʻoe ke hoʻonui iā ia mai InterSystems IRIS. Pono ka holo ʻana o IAM i ke komo ʻana i InterSystems IRIS e hoʻoiho i kahi laikini.

Hoʻonohonoho i InterSystems IRIS:

  • E ho'ā i ka polokalamu kele pūnaewele /api/IAM
  • Hiki i ka mea hoʻohana IAM
  • Hoʻololi i ka ʻōlelo huna mea hoʻohana IAM

I kēia manawa e hoʻomaka kākou i ka ipu IAM. Ma ka waihona e ʻike ʻoe i nā palapala iam-setup no Windows a me Unix (a me Mac). E kōkua kēia mau palapala iā ʻoe e hoʻonohonoho pono i nā ʻano hoʻololi kaiapuni, e ʻae ana i ka ipu IAM e hoʻokumu i kahi pilina me InterSystems IRIS. Eia kekahi laʻana o ka palapala e holo ana ma 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

E like me kāu e ʻike ai, ʻo ka inoa kiʻi piha, IP address, InterSystems IRIS port a me ka ʻōlelo huna no ka mea hoʻohana IAM ʻo ia wale nō kāu e hoʻomaka ai.

Ma kahi o ka holo ʻana i kahi palapala, hiki iā ʻoe ke hoʻonohonoho lima i nā ʻano hoʻololi kaiapuni:

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

Hoʻollo

E hoʻomaka kākou i ka IAM ma ka holo ʻana i ke kauoha:

docker-compose up -d

Hoʻonohonoho kēia kauoha i nā ipu IAM a hōʻoia i ka holo pololei ʻana o nā mea āpau. Nānā ʻia ke kūlana o nā ipu me ke kauoha:

docker ps

E wehe i ke kikowaena admin ma kāu polokalamu kele pūnaewele localhost:8002.

Hoʻolauna ʻia ʻo InterSystems API Manager (+ webinar)

Ua hakahaka i kēia manawa no ka mea, he node hou loa ia. E hoʻololi kākou i kēlā. Kākoʻo ʻo IAM i ka manaʻo o nā wahi hana no ka hoʻokaʻawale ʻana i nā API i nā modula a/a i ʻole nā ​​kauoha. E hele i ka papa hana "paʻamau" a mākou e hoʻohana ai no kā mākou hoʻokolohua.

Hoʻolauna ʻia ʻo InterSystems API Manager (+ webinar)

ʻAʻole mau ka helu o nā noi no kēia wahi hana, akā e loaʻa iā ʻoe kahi manaʻo o nā manaʻo kumu IAM ma ka papa kuhikuhi ma ka hema. ʻO nā mea mua ʻelua: ʻO nā lawelawe a me nā ala ka mea nui loa:

  • ʻO ka lawelawe ka API a mākou e makemake ai e hāʻawi i ke komo i nā mea kūʻai. No laila, ʻo ka REST API ma InterSystems IRIS he lawelawe, e like me ka Google API inā makemake ʻoe e hoʻohana.
  • Hoʻoholo ke Alanui i kahi lawelawe e hoʻouna ʻia ai nā noi komo. Loaʻa i kēlā me kēia Alanui kahi kūlana kikoʻī, a inā e hoʻokō ʻia, hoʻouna ʻia ka noi i ka Service kūpono. No ka laʻana, hiki i kahi Alanui ke hoʻohālikelike i ka IP, ka mana hoʻouna, nā ʻano HTTP, nā ʻāpana o kahi URI, a i ʻole ka hui pū ʻana o kēia mau laʻana.

hana

E hana mākou i kahi lawelawe InterSystems IRIS, me kēia mau waiwai:

kahua
waiwai
hōʻikeʻano

inoa
Iris
Inoa lawelawe

koa
IP
InterSystems IRIS server host a ip

ke awa
52773
awa pūnaewele kikowaena InterSystems IRIS

Ala
/api/atelier
Alahele kumu

Hana ma'amau
http
Pūnaewele

E waiho i nā waiwai i koe ma ke ʻano he paʻamau. Kaomi i ke pihi Create a kākau iho i ka ID o ka Service i hana ʻia.

Kahi

I kēia manawa e hana mākou i kahi ala:

kahua
waiwai
hōʻikeʻano

Ala
/api/atelier
Alahele kumu

Hana ma'amau
http
Pūnaewele

service.id
alakaʻi mai 3
Ka lawelawe (ID mai ka ʻanuʻu mua)

E waiho i nā waiwai i koe ma ke ʻano he paʻamau. Kaomi i ke pihi Create a kakau iho i ka ID o ke Alanui i hanaia. Ma ka paʻamau, hoʻolohe ʻo IAM i nā noi e komo mai ana ma ke awa 8000. I kēia manawa ua hoʻouna ʻia nā noi i http://localhost:8000 a e hoomaka ana me /api/atelier ua hoʻohuli ʻia i InterSystems IRIS.

Hoʻoponopono

E hoʻāʻo kāua e hana i kahi noi i kahi mea kūʻai aku REST (ke hoʻohana nei au Kahuhahu).

Hoʻolauna ʻia ʻo InterSystems API Manager (+ webinar)

E hoʻouna i kahi noi GET iā http://localhost:8000/api/atelier/ (mai poina / ma ka hopena) a loaʻa kahi pane mai InterSystems IRIS. E hele ana kēlā me kēia noi ma o IAM e hōʻiliʻili ana i nā ana:

  • Ka helu kūlana HTTP.
  • Hoʻopaneʻe.
  • Ka nānā ʻana (inā hoʻonohonoho ʻia).

Ua hana au i kekahi mau noi hou aku (me nā noi ʻelua i nā helu hope ʻole e like me /api/atelier/est/), ʻike koke ʻia nā hopena ma ka dashboard:

Hoʻolauna ʻia ʻo InterSystems API Manager (+ webinar)

Ke hana nei me nā plugins

I kēia manawa ua hoʻonohonoho ʻia kahi Alanui, hiki iā mākou ke hoʻokele i kā mākou API. Hiki iā mākou ke hoʻohui i nā hiʻohiʻona e hoʻokō i kā mākou lawelawe.

ʻO ke ala maʻamau e hoʻololi i ke ʻano o kahi API e hoʻohui i kahi plugin. Hoʻokaʻawale nā ​​plugins i ka hana pilikino a hiki ke hoʻopili ʻia iā IAM ma ka honua a i ʻole i nā hui pākahi wale nō, e like me kahi mea hoʻohana (hui o nā mea hoʻohana), Service a i ʻole Alanui. E hoʻomaka mākou ma ka hoʻohui ʻana i ka plugin Rate Limiting i ke Alanui. No ka hoʻokumu ʻana i kahi pilina ma waena o ka plugin a me ke ala, pono mākou i kahi ʻike kūikawā (ID) o ke ala.

E kaupalena ana i ka helu o nā noi

Kaomi iā Plugins ma ka papa kuhikuhi ʻaoʻao hema. Hiki iā ʻoe ke ʻike i nā plugins ikaika a pau ma kēia ʻaoʻao, akā no ka mea he mea hou kēia kikowaena IAM, ʻaʻohe mau plugins ikaika. No laila e hoʻomau i ka pae aʻe ma ke kaomi ʻana i ka "Plugin Hou".

ʻO ka plugin a mākou e pono ai aia ma ka māhele "Traffic Control" a kapa ʻia ʻo "Rate Limiting". E koho ia. He liʻiliʻi nā hoʻonohonoho hiki iā ʻoe ke hoʻonohonoho ma aneʻi, akā mālama mākou i ʻelua kahua:

kahua
waiwai
hōʻikeʻano

route_id
ID
Alanui ID

config.minute
5
Ka helu o nā noi i kēlā me kēia minuke

ʻo ia wale nō. Hoʻonohonoho ʻia ka plugin a hana. E hoʻomaopopo he hiki iā mākou ke koho i nā manawa manawa like ʻole, e like me hoʻokahi minuke, hoʻokahi hola a i ʻole ka lā. Hiki ke hoʻohui ʻia nā hoʻonohonoho (no ka laʻana, 1000 noi i kēlā me kēia hola a ma ka manawa like 100 noi i kēlā me kēia minuke). Ua koho au i mau minuke no ka mea e maʻalahi ke nānā i ka hana o ka plugin.

Inā hoʻouna hou ʻoe i ka noi like ma Postman, e ʻike ʻoe ua hoʻihoʻi ʻia ka pane me 2 mau poʻomanaʻo hou:

  • XRateLimit-Limit-minuke: 5
  • XRateLimit-Ke koena minuke: 4

Hōʻike kēia i ka mea kūʻai aku hiki iā ia ke hana i 5 mau noi i kēlā me kēia minuke a hiki ke hana i 4 mau noi hou i ka manawa manawa.

Hoʻolauna ʻia ʻo InterSystems API Manager (+ webinar)

Inā ʻoe e hana pinepine i ka noi like, e pau ana ʻoe i ka quota i loaʻa a loaʻa iā ʻoe kahi code status HTTP o 429 me kēia kino pane:

Hoʻolauna ʻia ʻo InterSystems API Manager (+ webinar)

E kali i kekahi minuke a hiki iā ʻoe ke hoʻouna hou i nā noi.

He mīkini maʻalahi kēia e hiki ai iā ʻoe ke:

  • E pale i ka hope mai nā haʻalulu ukana.
  • E haʻi i nā mea kūʻai aku i ka nui o nā noi e hiki iā lākou ke hana.
  • E hoʻolilo kālā i ka API.

Hiki iā ʻoe ke hoʻonohonoho i nā waiwai no nā manawa like ʻole a no laila e hoʻomaʻamaʻa i ka huakaʻi API i kekahi manawa. E ʻae aku ʻoe i nā noi 600 i kēlā me kēia hola ma kekahi Alanui. Ma ka awelika he 10 mau noi i kēlā me kēia minuke. Akā ʻaʻohe mea e pale i ka mea kūʻai mai e hoʻopau i nā noi 600 āpau i ka minuke mua o ka hola. ʻO kēia paha kāu mea e pono ai. Makemake paha ʻoe e hoʻokō i kahi haʻawina ʻoi aku ka maikaʻi i loko o ka hola. Ma ka hoʻonohonoho ʻana i ka waiwai kahua config.minute ʻO ka waiwai o 20 e hōʻoia i kāu mea hoʻohana e hana ʻaʻole ʻoi aku ma mua o 20 mau noi i kēlā me kēia minuke a me 600 mau noi i kēlā me kēia hola. Hāʻawi kēia i nā spike liʻiliʻi i ka manawa hoʻokahi minuke i hoʻohālikelike ʻia me ka holo ʻana o 10 mau noi i kēlā me kēia minuke, akā ʻaʻole hiki i nā mea hoʻohana ke hoʻohana i ka quota hola no hoʻokahi minuke. I kēia manawa, pono lākou ma kahi o 30 mau minuke e hoʻohana i kā lākou noi āpau. E loaʻa i nā mea kūʻai aku nā poʻomanaʻo hou no kēlā me kēia manawa i ʻōlelo ʻia, no ka laʻana:

Poʻomanaʻo HTTP
waiwai

X-RateLimit-Limit-hola
600

X-RateLimit-Hula i koe
595

X-RateLimit-Limit-minuke
20

X-RateLimit-Koe-minuke
16

ʻOiaʻiʻo, nui nā ala like ʻole e hoʻonohonoho ai i nā palena nīnau ma muli o ka mea āu e makemake ai e hoʻokō.

haʻina

E hoʻopau wau ma ʻaneʻi, manaʻo wau ua lawa nā mea no ka ʻatikala mua e pili ana i InterSystems API Manager. Ua hoʻohana wale mākou i hoʻokahi o nā plugins 40. Nui nā mea hoihoi e hiki iā ʻoe ke hana me IAM:

  • Hoʻohui i kahi mīkini hōʻoia kikowaena no kāu mau API āpau.
  • E hoʻonui i ka ukana me ka hoʻohana ʻana i kahi mea kaulike hoʻouka ma waena o nā lawelawe he nui.
  • Hoʻohui i nā hana hou a me nā hoʻoponopono bug i kahi anaina hoʻāʻo ma mua o ka hoʻonui piha ʻana.
  • Hāʻawi i nā mea hoʻomohala kūloko a me waho me kahi puka pūnaewele hoʻolaʻa e palapala ana i nā API āpau.
  • Noi ka cache e hoʻemi i ka manawa pane a hoʻemi i ka ukana ma ka ʻaoʻao hope o ka ʻōnaehana.

kūmole

Webinar

Ke kono nei mākou iā ʻoe i ka webinar "API Management with InterSystems API Management", e hana ʻia ma Nowemapa 21 ma 10:00 Moscow manawa (GMT+3).
ʻO InterSystems API Manager (IAM) kahi mea hou o ka InterSystems IRIS Data Platform e hāʻawi ana i ka nānā ʻana, ka hoʻomalu a me ka hoʻokele ʻana i nā kaʻa i/mai nā API pūnaewele i loko o ka ʻenehana IT. Ma ka webinar e hōʻike mākou i nā mana koʻikoʻi o InterSystems API Management:

  • ʻO nā mea hana nānā kaʻa API.
  • Nā mana kaʻa API, me ka mana bandwidth, ka palena ʻana i ka helu o nā kelepona API, ka mālama ʻana i nā papa inoa o nā papa inoa IP i ʻae ʻia a hōʻole ʻia, etc.
  • Nā mea hana hoʻonohonoho palekana API.
  • Mea hoʻomohala puka no ka hoʻopuka ʻana i nā palapala API pili.
  • Hoʻokahi wahi o ke komo ʻana i ka API.

Hoʻolālā ʻia ka webinar no nā mea kākau, nā mea hoʻomohala a me nā luna ʻōnaehana.

Pono ke kakau inoa!

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka