Tunakuletea Kidhibiti cha API cha InterSystems (+ mtandao)

Hivi majuzi tulitoa Kidhibiti cha API cha InterSystems (IAM), sehemu mpya ya Jukwaa la Data la InterSystems IRIS ambalo hutoa mwonekano, udhibiti na usimamizi wa trafiki ya API ya wavuti kwenye miundombinu ya IT.

Katika makala haya, nitakuonyesha jinsi ya kusanidi IAM na kuonyesha baadhi ya uwezo mwingi unaopatikana kwa kutumia IAM. Kidhibiti cha API cha InterSystems hukuruhusu:

  • Fuatilia API, elewa ni nani anatumia API, API zipi ni maarufu zaidi, na zipi zinahitaji uboreshaji.
  • Dhibiti anayetumia API na uweke kikomo matumizi ya API kutoka kwa vizuizi rahisi vya ufikiaji hadi vizuizi vinavyotegemea ombi - una udhibiti maalum na unaweza kujibu kwa haraka kubadilisha mifumo ya matumizi ya API.
  • Salama API kwa kutumia njia za usalama za kati kama vile OAuth2.0, LDAP au Uthibitishaji wa Tokeni muhimu.
  • Rahisishia wasanidi programu wengine na uwape uzoefu bora wa API kwa kufungua tovuti maalum ya wasanidi programu.
  • Kadiria API na uhakikishe muda wa kusubiri wa majibu kwa kiasi kidogo.

Usimamizi wa API ni muhimu kwa mpito wa SOA au usanifu wa huduma ndogo, kurahisisha ujumuishaji kati ya huduma za kibinafsi (ndogo), kuzifanya zipatikane kwa watumiaji wote wa nje na wa ndani. Kwa hivyo, API mpya inakuwa rahisi kuunda, kudumisha, na kutumia.

Ikiwa tayari unatumia InterSystems IRIS, unaweza kuongeza chaguo la IAM kwenye leseni yako. Chaguo la IAM ni bure kwa wateja wa InterSystems IRIS, lakini lazima uombe ufunguo mpya wa leseni kutoka kwa InterSystems ili kuanza kutumia IAM.

Ikiwa bado hutumii InterSystems IRIS na unapanga kujaribu Kidhibiti cha API cha InterSystems, tafadhali wasiliana na InterSystems.

Kuanza na Ufungaji

Wateja wa InterSystems wanaweza kupakua usambazaji wa IAM kutoka kwa wavuti WRC sehemu ya "Usambazaji wa Programu" na uendeshe kama chombo cha Docker. Mahitaji ya chini ya mfumo:

Hapo awali, unahitaji kupakua picha ya Docker (Muhimu! Kumbukumbu iliyo na WRC sio picha ya Docker, unahitaji kuifungua, kuna picha ya Docker ndani):

docker load -i iam_image.tar

Amri hii itafanya picha ya IAM ipatikane kwa matumizi ya baadaye kwenye seva yako. IAM huendesha kama chombo tofauti, kwa hivyo unaweza kuiongeza kwa kujitegemea kutoka kwa InterSystems IRIS. Kuendesha IAM kunahitaji ufikiaji wa InterSystems IRIS ili kupakua leseni.

Sanidi InterSystems IRIS:

  • Washa programu ya wavuti /api/IAM
  • Wezesha mtumiaji IAM
  • Badilisha nenosiri la mtumiaji IAM

Sasa hebu tuanze chombo cha IAM. Kwenye kumbukumbu utapata maandishi iam-setup kwa Windows na Unix (na Mac). Maandishi haya yatakusaidia kuweka vigezo vya mazingira kwa usahihi, ikiruhusu chombo cha IAM kuanzisha muunganisho na InterSystems IRIS. Hapa kuna mfano wa hati inayoendesha kwenye 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

Kama unavyoona, jina kamili la picha, anwani ya IP, bandari ya InterSystems IRIS na nenosiri la mtumiaji wa IAM ndizo unahitaji kuanza.

Badala ya kuendesha hati, unaweza kuweka anuwai za mazingira kwa mikono:

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

Uzindua

Sasa wacha tuzindue IAM kwa kuendesha amri:

docker-compose up -d

Amri hii hupanga vyombo vya IAM na kuhakikisha kuwa kila kitu kinaendeshwa kwa usahihi. Hali ya vyombo huangaliwa kwa kutumia amri:

docker ps

Fungua kiolesura cha msimamizi katika kivinjari chako localhost:8002.

Tunakuletea Kidhibiti cha API cha InterSystems (+ mtandao)

Ni tupu kwa sasa kwa sababu ni nodi mpya kabisa. Tubadilishe hilo. IAM inasaidia dhana ya nafasi za kazi za kugawanya API katika moduli na/au amri. Nenda kwenye nafasi ya kazi ya "chaguo-msingi" ambayo tutatumia kwa majaribio yetu.

Tunakuletea Kidhibiti cha API cha InterSystems (+ mtandao)

Idadi ya maombi ya nafasi hii ya kazi bado ni sifuri, lakini utapata wazo la dhana za msingi za IAM kwenye menyu iliyo upande wa kushoto. Vipengele viwili vya kwanza: Huduma na Njia ndio muhimu zaidi:

  • Huduma ni API ambayo tunataka kutoa ufikiaji kwa watumiaji. Kwa hivyo, API ya REST katika InterSystems IRIS ni Huduma, kama ilivyo, kwa mfano, API ya Google ikiwa unataka kuitumia.
  • Njia huamua ni kwa Huduma gani maombi yanayoingia yanapaswa kutumwa. Kila Njia ina seti maalum ya masharti, na ikiwa yametimizwa, ombi linatumwa kwa Huduma inayolingana. Kwa mfano, Njia inaweza kulingana na IP, kikoa cha mtumaji, mbinu za HTTP, sehemu za URI, au mchanganyiko wa mifano hii.

Huduma

Wacha tuunde Huduma ya InterSystems IRIS, iliyo na maadili yafuatayo:

Shamba
Thamani
Description

jina
iris
Jina la Huduma

jeshi
IP
Mpangishi wa seva ya InterSystems IRIS au ip

bandari
52773
Lango la wavuti la seva ya InterSystems IRIS

njia
/api/atelier
Njia ya mizizi

itifaki
http
Itifaki

Acha maadili yaliyobaki kama chaguo-msingi. Bofya kitufe Create na uandike kitambulisho cha Huduma iliyoundwa.

Njia

Sasa wacha tutengeneze njia:

Shamba
Thamani
Description

njia
/api/atelier
Njia ya mizizi

itifaki
http
Itifaki

service.id
mwongozo kutoka 3
Huduma (Kitambulisho kutoka hatua ya awali)

Acha maadili yaliyobaki kama chaguo-msingi. Bofya kitufe Create na uandike kitambulisho cha Njia iliyoundwa. Kwa chaguomsingi, IAM husikiliza maombi yanayoingia kwenye port 8000. Sasa maombi yanatumwa kwa http://localhost:8000 na kuanzia /api/atelier zinaelekezwa kwa InterSystems IRIS.

Upimaji

Wacha tujaribu kuunda ombi katika mteja wa REST (ninatumia Postman).

Tunakuletea Kidhibiti cha API cha InterSystems (+ mtandao)

Wacha tutume ombi la GET kwa http://localhost:8000/api/atelier/ (Usisahau / mwishoni) na kupokea jibu kutoka kwa InterSystems IRIS. Kila ombi hupitia IAM ambayo hukusanya vipimo:

  • Msimbo wa hali ya HTTP.
  • Kuchelewa.
  • Ufuatiliaji (ikiwa umesanidiwa).

Nilifanya maombi machache zaidi (pamoja na maombi mawili kwa miisho ambayo haipo kama vile /api/atelier/est/), matokeo yanaonekana mara moja kwenye dashibodi:

Tunakuletea Kidhibiti cha API cha InterSystems (+ mtandao)

Kufanya kazi na programu-jalizi

Kwa kuwa sasa tuna Njia iliyosanidiwa, tunaweza kudhibiti API yetu. Tunaweza kuongeza vipengele ambavyo vitasaidia huduma yetu.

Njia ya kawaida ya kubadilisha tabia ya API ni kuongeza programu-jalizi. Programu-jalizi hutenga utendakazi wa mtu binafsi na zinaweza kuunganishwa kwa IAM duniani kote au kwa vyombo binafsi pekee, kama vile Mtumiaji (kundi la watumiaji), Huduma au Njia. Tutaanza kwa kuongeza programu-jalizi ya Kupunguza Kiwango kwenye Njia. Ili kuanzisha muunganisho kati ya programu-jalizi na njia, tunahitaji kitambulisho cha kipekee (Kitambulisho) cha njia.

Kupunguza idadi ya maombi

Bofya programu-jalizi kwenye menyu ya utepe wa kushoto. Unaweza kuona programu jalizi zote zinazotumika kwenye skrini hii, lakini kwa kuwa seva hii ya IAM ni mpya, bado hakuna programu jalizi zinazotumika. Kwa hivyo endelea kwa hatua inayofuata kwa kubofya "Plugin Mpya".

Programu-jalizi tunayohitaji iko katika kitengo cha "Udhibiti wa Trafiki" na inaitwa "Kikomo cha Kiwango". Ichague. Kuna mipangilio michache unayoweza kuweka hapa, lakini tunajali tu sehemu mbili:

Shamba
Thamani
Description

kitambulisho_cha njia
ID
Kitambulisho cha njia

config.dakika
5
Idadi ya maombi kwa dakika

Ni hayo tu. Programu-jalizi imesanidiwa na inatumika. Kumbuka kuwa tunaweza kuchagua vipindi tofauti vya saa, kama vile dakika, saa au siku. Mipangilio inaweza kuunganishwa (kwa mfano, maombi 1000 kwa saa na wakati huo huo maombi 100 kwa dakika). Nilichagua dakika kwa sababu hurahisisha kuangalia utendakazi wa programu-jalizi.

Ukituma ombi sawa tena katika Postman, utaona kwamba jibu limerudishwa na vichwa 2 vya ziada:

  • XRateLimit-Dakika-Kikomo: 5
  • XRateLimit-Dakika-Zilizosalia: 4

Hii inamwambia mteja kuwa inaweza kufanya hadi maombi 5 kwa dakika na inaweza kufanya maombi 4 zaidi katika muda wa sasa.

Tunakuletea Kidhibiti cha API cha InterSystems (+ mtandao)

Ukituma ombi lile lile tena na tena, hatimaye utaishiwa na nafasi inayopatikana na badala yake utapokea msimbo wa hali ya HTTP wa 429 na chombo kifuatacho cha majibu:

Tunakuletea Kidhibiti cha API cha InterSystems (+ mtandao)

Subiri kidogo na utaweza kutuma maombi tena.

Huu ni utaratibu unaofaa ambao hukuruhusu:

  • Linda sehemu ya nyuma dhidi ya kuongezeka kwa mzigo.
  • Waambie wateja ni maombi mangapi wanaweza kufanya.
  • Monetize API.

Unaweza kuweka maadili kwa vipindi tofauti vya wakati na hivyo kulainisha trafiki ya API kwa muda fulani. Tuseme unaruhusu maombi 600 kwa saa kwenye Njia fulani. Kwa wastani kuna maombi 10 kwa dakika. Lakini hakuna kinachomzuia mteja kukamilisha maombi yote 600 katika dakika ya kwanza ya saa. Labda hii ndiyo unayohitaji. Unaweza kutaka kufikia mzigo hata zaidi kwa muda wa saa moja. Kwa kuweka thamani ya shamba config.minute Thamani ya 20 huhakikisha kuwa watumiaji wako hawazidi maombi 20 kwa dakika na maombi 600 kwa saa. Hii inaruhusu miinuko midogo kwa muda wa dakika moja ikilinganishwa na mtiririko wa wastani wa maombi 10 kwa dakika, lakini watumiaji hawawezi kutumia kiasi cha saa kwa dakika moja. Sasa watahitaji angalau dakika 30 kutumia maombi yao yote. Wateja watapokea vichwa vya ziada kwa kila muda maalum, kwa mfano:

Kichwa cha HTTP
Thamani

X-RateLimit-Saa-Kikomo
600

X-RateLimit-Saa-Iliyobaki
595

X-RateLimit-Dakika-Kikomo
20

X-RateLimit-Dakika-Zilizosalia
16

Bila shaka, kuna njia nyingi tofauti za kusanidi mipaka ya hoja kulingana na kile unachotaka kufikia.

Matokeo

Nitamaliza hapa, nadhani kuna nyenzo za kutosha kwa nakala ya kwanza kuhusu Kidhibiti cha API cha InterSystems. Tulitumia moja tu ya zaidi ya programu-jalizi 40. Kuna mambo mengi ya kuvutia zaidi unaweza kufanya na IAM:

  • Ongeza njia kuu ya uthibitishaji kwa API zako zote.
  • Pima upakiaji kwa kutumia kisawazisha mzigo kwenye Huduma nyingi.
  • Ongeza utendakazi mpya na urekebishaji wa hitilafu kwa hadhira ya majaribio kabla ya sasisho kamili.
  • Wape wasanidi wa ndani na nje lango mahususi la wavuti linalohifadhi kumbukumbu za API zote.
  • Maombi ya akiba ya kupunguza muda wa majibu na kupunguza mzigo kwenye mazingira ya nyuma ya mfumo.

marejeo

Webinar

Tunakualika kwenye mtandao "Usimamizi wa API na Usimamizi wa API ya InterSystems", ambayo itafanyika Novemba 21 saa 10:00 wakati wa Moscow (GMT + 3).
InterSystems API Manager (IAM) ni sehemu mpya ya InterSystems IRIS Data Platform ambayo hutoa ufuatiliaji, udhibiti na usimamizi wa trafiki kwenda/kutoka API za wavuti ndani ya miundombinu ya TEHAMA. Kwenye wavuti tutaonyesha uwezo muhimu wa Usimamizi wa API wa InterSystems:

  • Zana za ufuatiliaji wa trafiki za API.
  • Vidhibiti vya trafiki vya API, ikiwa ni pamoja na udhibiti wa kipimo data, kupunguza idadi ya simu za API, kudumisha orodha za orodha zinazoruhusiwa na zilizokataliwa za anwani za IP, n.k.
  • Zana za usanidi wa usalama wa API.
  • Tovuti ya wasanidi programu ya kuchapisha hati shirikishi za API.
  • Sehemu moja ya ufikiaji wa API.

Webinar imekusudiwa wasanifu, watengenezaji na wasimamizi wa mfumo.

Usajili unahitajika!

Chanzo: mapenzi.com

Kuongeza maoni