InterSystems API Manager aurkezten (+ webinarra)

Duela gutxi InterSystems API Manager (IAM) kaleratu dugu, InterSystems IRIS Datu Plataformaren osagai berri bat, IT azpiegituran web API trafikoaren ikusgarritasuna, kontrola eta kudeaketa eskaintzen duena.

Artikulu honetan, IAM nola konfiguratu erakutsiko dizut eta IAM-rekin eskuragarri dituzun gaitasun ugarietako batzuk erakutsiko dizut. InterSystems API kudeatzaileak aukera ematen dizu:

  • Kontrolatu APIa, ulertu nork erabiltzen duen APIa, zein API diren ezagunenak eta zeintzuk hobetu behar diren.
  • Kontrolatu nork erabiltzen duen APIa eta mugatu APIaren erabilera sarbide-murrizketetatik eskaeretan oinarritutako murrizketetara.
  • Seguru APIak segurtasun-mekanismo zentralizatuak erabiliz, hala nola OAuth2.0, LDAP edo Key Token Authentication.
  • Erraztu hirugarrenen garatzaileei eta eskaini API esperientzia hobe bat garatzaileentzako atari dedikatu bat irekiz.
  • Eskalatu APIa eta ziurtatu erantzunen latentzia minimoa.

APIen kudeaketa ezinbestekoa da SOA edo mikrozerbitzuen arkitekturara igarotzeko, banakako (mikro)zerbitzuen arteko integrazioa erraztuz, kanpoko eta barneko kontsumitzaile guztien eskura jarriz. Ondorioz, API berriak sortzea, mantentzea eta kontsumitzea errazagoa da.

Dagoeneko InterSystems IRIS erabiltzen ari bazara, IAM aukera gehi diezaiokezu zure lizentziari. IAM aukera doakoa da InterSystems IRIS bezeroentzat, baina lizentzia-gako berri bat eskatu behar diozu InterSystems-i IAM erabiltzen hasteko.

Oraindik InterSystems IRIS erabiltzen ari ez bazara eta InterSystems API Manager probatzeko asmoa baduzu, jarri harremanetan InterSystems-ekin.

Lehen urratsak eta instalazioa

InterSystems-eko bezeroek IAM banaketa deskargatu dezakete webgunetik WRC atala "Software Banaketa" eta exekutatu Docker edukiontzi gisa. Sistemaren gutxieneko eskakizunak:

Hasieran, Docker irudia deskargatu behar duzu (Garrantzitsua! WRC duen artxiboa ez da Docker irudi bat, deskonprimitu behar duzu, barruan Docker irudi bat dago):

docker load -i iam_image.tar

Komando honek IAM irudia eskuragarri jarriko du gero zerbitzarian erabiltzeko. IAM edukiontzi bereizi gisa exekutatzen da, beraz, InterSystems IRISetik independenteki eska dezakezu. IAM exekutatzeak InterSystems IRIS-era sarbidea behar du lizentzia deskargatzeko.

Konfiguratu InterSystems IRIS:

  • Gaitu web aplikazioa /api/IAM
  • Gaitu erabiltzailea IAM
  • Aldatu erabiltzailearen pasahitza IAM

Orain has gaitezen IAM edukiontzia. Artxiboan gidoiak aurkituko dituzu iam-setup Windows eta Unix-erako (eta Mac). Script hauek ingurune-aldagaiak behar bezala ezartzen lagunduko dizute, IAM edukiontziak InterSystems IRIS-ekin konexioa ezartzeko aukera emanez. Hona hemen Mac-en exekutatzen ari den scriptaren adibide bat:

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

Ikus dezakezunez, irudiaren izen osoa, IP helbidea, InterSystems IRIS ataka eta IAM erabiltzailearen pasahitza dira hasteko behar duzun guztia.

Script bat exekutatu beharrean, ingurune-aldagaiak eskuz ezar ditzakezu:

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

aireratzea

Orain abiarazi dezagun IAM komandoa exekutatuz:

docker-compose up -d

Komando honek IAM edukiontziak antolatzen ditu eta dena behar bezala exekutatzen ari dela ziurtatzen du. Edukiontzien egoera komandoa erabiliz egiaztatzen da:

docker ps

Ireki administrazio-interfazea zure arakatzailean localhost:8002.

InterSystems API Manager aurkezten (+ webinarra)

Oraingoz hutsik dago nodo guztiz berria delako. Alda dezagun hori. IAM-ek lan-eremuen kontzeptua onartzen du APIak moduluetan eta/edo komandoetan banatzeko. Joan gure esperimentuetarako erabiliko dugun lan-eremu "lehenetsia".

InterSystems API Manager aurkezten (+ webinarra)

Lan-eremu honen eskaera kopurua zero da oraindik, baina IAM oinarrizko kontzeptuen ideia bat izango duzu ezkerreko menuan. Lehenengo bi elementuak: Zerbitzuak eta Ibilbideak dira garrantzitsuenak:

  • БСрвис (Service) β€” API, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ доступ потрСбитСлям. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, REST API Π² InterSystems IRIS являСтся БСрвисом, ΠΊΠ°ΠΊ ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Google API, Ссли Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.
  • Ibilbideak erabakitzen du zein Zerbitzutara helarazi behar diren sarrerako eskaerak. Ibilbide bakoitzak baldintza multzo zehatz bat du, eta horiek betetzen badira, dagokion Zerbitzura bidaltzen da eskaera. Adibidez, Ibilbide batek IParekin, igorlearen domeinuarekin, HTTP metodoekin, URI baten zatiekin edo adibide hauen konbinazioarekin bat egin dezake.

Zerbitzua

Sor dezagun InterSystems IRIS Zerbitzua, balio hauekin:

Field
Balio
Description

izena
iris
Zerbitzuaren izena

ostalari
IP
InterSystems IRIS zerbitzariaren ostalari edo ip

portu
52773
InterSystems IRIS zerbitzariaren web ataka

bidea
/api/atelier
Erro bidea

protokoloa
http
protokoloa

Utzi gainerako balioak lehenetsi gisa. Egin klik botoian Create eta idatzi sortutako Zerbitzuaren IDa.

ibilbidea

Orain sor dezagun ibilbide bat:

Field
Balio
Description

bidea
/api/atelier
Erro bidea

protokoloa
http
protokoloa

zerbitzu.id
gida 3tik aurrera
Zerbitzua (aurreko urratseko ID)

Utzi gainerako balioak lehenetsi gisa. Egin klik botoian Create eta idatzi sortutako Ibilbidearen IDa. Lehenespenez, IAM-k 8000 atakan jasotzen dituen eskaerak entzuten ditu. Orain hona bidalitako eskaerak http://localhost:8000 eta hasita /api/atelier InterSystems IRISera birbideratzen dira.

Testing

Saia gaitezen eskaera bat sortzen REST bezero batean (erabiltzen ari naiz Postaria).

InterSystems API Manager aurkezten (+ webinarra)

Bidal diezaiogun GET eskaera honi http://localhost:8000/api/atelier/ (ez ahaztu / amaieran) eta InterSystems IRISen erantzuna jaso. Eskaera bakoitza IAM bidez pasatzen da eta horrek neurketak biltzen ditu:

  • HTTP egoera kodea.
  • Atzerapena.
  • Monitorizazioa (konfiguratuta badago).

Eskaera gehiago egin nituen (esaterako /api/atelier/est/ existitzen ez diren puntuetarako bi eskaera barne), emaitzak berehala ikusten dira aginte-panelean:

InterSystems API Manager aurkezten (+ webinarra)

Pluginekin lan egitea

Orain Ibilbide bat konfiguratuta daukagunez, gure APIa kudea dezakegu. Gure zerbitzua osatuko duten ezaugarriak gehi ditzakegu.

API baten portaera aldatzeko modurik ohikoena plugin bat gehitzea da. Pluginek funtzionaltasun indibidualak isolatzen dituzte eta IAMera konektatu daitezke modu orokorrean edo entitate indibidualetara soilik, hala nola Erabiltzaile (erabiltzaile talde), Zerbitzu edo Ibilbide batera. Ibilbideari Tarifa mugatzeko plugina gehitzen hasiko gara. Pluginaren eta ibilbidearen arteko konexioa ezartzeko, ibilbidearen identifikatzaile (ID) bakarra behar dugu.

Eskaera kopurua mugatzea

Egin klik Pluginak ezkerreko alboko barrako menuan. Pantaila honetan plugin aktibo guztiak ikus ditzakezu, baina IAM zerbitzari hau berria denez, oraindik ez dago plugin aktiborik. Beraz, jarraitu hurrengo urratsera "Plugin berria" klik eginez.

Behar dugun plugina "Trafiko Kontrola" kategorian dago eta "Tasa mugatzea" deitzen da. Hautatu. Hemen ezar ditzakezun ezarpen asko daude, baina bi eremu baino ez ditugu axola:

Field
Balio
Description

ibilbidea_id
ID
Ibilbidearen IDa

konfigurazio.minutu
5
Minutu bakoitzeko eskaera kopurua

Hori da dena. Plugin-a konfiguratuta eta aktibo dago. Kontuan izan denbora tarte desberdinak aukeratu ditzakegula, hala nola minutu bat, ordu bat edo egun bat. Ezarpenak konbinatu daitezke (adibidez, 1000 eskaera orduko eta aldi berean 100 eskaera minutuko). Minutu batzuk aukeratu ditut, pluginaren funtzionaltasuna egiaztatzea erraza delako.

Eskaera bera Postman-en berriro bidaltzen baduzu, erantzuna 2 goiburu gehigarrirekin itzultzen dela ikusiko duzu:

  • XRateLimit-Limit-minutua: 5
  • XRateLimit-Gainerako minutua: 4

Honek bezeroari minutuko 5 eskaera egin ditzakeela eta uneko ordu-tartean beste 4 eskaera egin ditzakeela esaten dio.

InterSystems API Manager aurkezten (+ webinarra)

Eskaera bera behin eta berriz egiten baduzu, azkenean kuota erabilgarririk gabe geratuko zara eta horren ordez 429ko HTTP egoera-kode bat jasoko duzu erantzun-gorputz honekin:

InterSystems API Manager aurkezten (+ webinarra)

Itxaron minutu bat eta berriro eskaerak bidaltzeko aukera izango duzu.

Hau mekanismo erosoa da, aukera ematen dizuna:

  • Babestu backend-a karga igoeretatik.
  • Esan bezeroei zenbat eskaera egin ditzaketen.
  • Irabazi APIa.

Denbora-tarte desberdinetarako balioak ezar ditzakezu eta, horrela, API trafikoa leuntu dezakezu denbora-tarte jakin batean. Demagun Ibilbide jakin batean orduko 600 eskaera onartzen dituzula. Batez beste 10 eskaera daude minutuko. Baina ezerk ez du eragozten bezeroak orduko lehen minutuan 600 eskaera guztiak betetzea. Agian hau da behar duzuna. Baliteke ordubetean karga uniformeagoa lortu nahi izatea. Eremuaren balioa ezarriz config.minute 20 balio batek zure erabiltzaileek minutuko 20 eskaera baino gehiago eta orduko 600 eskaera baino gehiago ez dituztela ziurtatzen du. Honek minutu bateko tartean piko txikiak egiteko aukera ematen du minutuko 10 eskaeraren guztizko batez besteko fluxuarekin alderatuta, baina erabiltzaileek ezin dute orduko kuota minutu batean erabili. Orain gutxienez 30 minutu beharko dituzte eskaera guztiak erabiltzeko. Bezeroek goiburu osagarriak jasoko dituzte zehaztutako denbora-tarte bakoitzeko, adibidez:

HTTP goiburua
Balio

X-RateLimit-Limit-ordu
600

X-RateLimit-Gainerako ordua
595

X-RateLimit-Limit-minutua
20

X-RateLimit-Gainerako-minutua
16

Jakina, kontsulta-mugak konfiguratzeko hainbat modu daude lortu nahi duzunaren arabera.

Findings

Hemen amaituko dut, uste dut nahikoa material dagoela InterSystems API kudeatzaileari buruzko lehen artikulurako. 40 plugin baino gehiagotik bat bakarrik erabili dugu. IAM-rekin gauza interesgarri gehiago egin ditzakezu:

  • Gehitu autentifikazio-mekanismo zentrala zure API guztientzat.
  • Eskalatu karga hainbat zerbitzutan karga-orekatzailea erabiliz.
  • Gehitu funtzionaltasun eta akatsen konponketa berriak probako entzuleei eguneraketa osoa egin aurretik.
  • Hornitu barneko eta kanpoko garatzaileei API guztiak dokumentatzen dituen web-atari dedikatu bat.
  • Cache eskaerak erantzun denbora murrizteko eta sistemaren backend-aren karga murrizteko.

Erreferentziak

Webinar

Azaroaren 21ean Moskuko 10:00etan (GMT+3) egingo den "API Management with InterSystems API Management" web-mintegira gonbidatzen zaitugu.
InterSystems API Manager (IAM) InterSystems IRIS Data Platform-aren osagai berri bat da, eta IT azpiegituraren barneko web APIetarako/tik datozen trafikoaren jarraipena, kontrola eta kudeaketa eskaintzen ditu. Webinarioan InterSystems API kudeaketaren gaitasun nagusiak erakutsiko ditugu:

  • API trafikoa kontrolatzeko tresnak.
  • API trafikoaren kontrolak, banda zabalera kontrola barne, API deien kopurua mugatzea, baimendutako eta ukaturiko IP helbideen zerrendak mantentzea, etab.
  • API segurtasuna konfiguratzeko tresnak.
  • Garatzaileen ataria API interaktiboaren dokumentazioa argitaratzeko.
  • APIrako sarbide-puntu bakarra.

Webinarioa arkitekto, garatzaile eta sistema administratzaileei zuzenduta dago.

Izena ematea beharrezkoa da!

Iturria: www.habr.com

Gehitu iruzkin berria