Tutvustame InterSystems API Manageri (+ veebiseminar)

Hiljuti avaldasime InterSystems API Manager (IAM), InterSystems IRIS Data Platformi uue komponendi, mis pakub kogu IT-infrastruktuuri veebi API liikluse nähtavust, kontrolli ja haldamist.

Selles artiklis näitan teile, kuidas seadistada IAM-i ja näidata mõnda paljudest võimalustest, mis teile IAM-iga saadaval on. InterSystems API Manager võimaldab teil:

  • Jälgige API-d, mõistke, kes API-d kasutab, millised API-d on kõige populaarsemad ja millised vajavad täiustamist.
  • Kontrollige, kes API-t kasutab, ja piirake API kasutamist alates lihtsatest juurdepääsupiirangutest kuni päringupõhiste piiranguteni – teil on kohandatud kontroll ja saate kiiresti reageerida muutuvatele API tarbimisharjumustele.
  • Turvalised API-d, kasutades tsentraliseeritud turvamehhanisme, nagu OAuth2.0, LDAP või Key Token Authentication.
  • Tehke kolmandatest osapooltest arendajatele see lihtsamaks ja pakkuge neile suurepärane API-kogemus, avades spetsiaalse arendajaportaali.
  • Skaleerige API ja tagage minimaalne vastuse latentsus.

API haldus on hädavajalik SOA-le ehk mikroteenuste arhitektuurile üleminekuks, lihtsustades üksikute (mikro)teenuste vahelist integreerimist, muutes need kättesaadavaks kõikidele välis- ja sisetarbijatele. Selle tulemusel on uusi API-sid lihtsam luua, hooldada ja tarbida.

Kui kasutate juba InterSystems IRIS-i, saate oma litsentsile lisada IAM-i valiku. IAM-i valik on InterSystems IRIS-i klientidele tasuta, kuid IAM-i kasutamise alustamiseks peate InterSystemsilt taotlema uut litsentsivõtit.

Kui te ei kasuta veel InterSystems IRIS-i ja kavatsete proovida InterSystems API Manageri, võtke ühendust InterSystemsiga.

Alustamine ja installimine

InterSystemsi kliendid saavad IAM-i distributsiooni veebisaidilt alla laadida WRC jaotist "Tarkvara levitamine" ja käivitada Dockeri konteinerina. Minimaalsed süsteeminõuded:

Esialgu tuleb alla laadida Dockeri pilt (Tähtis! WRC-ga arhiiv ei ole Dockeri pilt, tuleb see lahti pakkida, sees on Dockeri pilt):

docker load -i iam_image.tar

See käsk teeb IAM-kujutise teie serveris hilisemaks kasutamiseks kättesaadavaks. IAM töötab eraldi konteinerina, nii et saate seda InterSystems IRIS-ist sõltumatult skaleerida. IAM-i käitamiseks on litsentsi allalaadimiseks vaja juurdepääsu InterSystems IRIS-ile.

Seadistage InterSystems IRIS:

  • Luba veebirakendus /api/IAM
  • Luba kasutaja IAM
  • Muutke kasutaja parooli IAM

Nüüd alustame IAM-i konteinerit. Arhiivist leiate skripte iam-setup Windowsi ja Unixi (ja Maci) jaoks. Need skriptid aitavad teil keskkonnamuutujaid õigesti seadistada, võimaldades IAM-i konteineril luua ühenduse InterSystems IRIS-iga. Siin on näide Macis töötavast skriptist:

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

Nagu näete, on alustamiseks vaja ainult pildi täielikku nime, IP-aadressi, InterSystemsi IRIS-porti ja IAM-i kasutaja parooli.

Skripti käivitamise asemel saate keskkonnamuutujaid käsitsi määrata.

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

Käivita

Nüüd käivitame IAM-i, käivitades käsu:

docker-compose up -d

See käsk korraldab IAM-konteinerid ja tagab, et kõik töötab õigesti. Konteinerite olekut kontrollitakse käsuga:

docker ps

Avage oma brauseris administraatoriliides localhost:8002.

Tutvustame InterSystems API Manageri (+ veebiseminar)

See on praegu tühi, sest see on täiesti uus sõlm. Muudame seda. IAM toetab tööruumide kontseptsiooni API-de jagamiseks mooduliteks ja/või käskudeks. Minge "vaike" tööalale, mida kasutame oma katsetes.

Tutvustame InterSystems API Manageri (+ veebiseminar)

Selle tööruumi päringute arv on endiselt null, kuid vasakpoolses menüüs saate aimu IAM-i põhikontseptsioonidest. Kaks esimest elementi: teenused ja marsruudid on kõige olulisemad.

  • Teenus on API, millele tahame tarbijatele juurdepääsu pakkuda. Seega on InterSystems IRIS-i REST API teenus, nagu ka näiteks Google API, kui soovite seda kasutada.
  • Marsruut otsustab, millisele teenusele tuleb sissetulevad päringud edastada. Igal marsruudil on kindlad tingimused ja kui need on täidetud, saadetakse päring vastavale teenusele. Näiteks võib marsruut sobitada IP-ga, saatja domeeniga, HTTP-meetoditega, URI osadega või nende näidete kombinatsiooniga.

Teenus

Loome InterSystemsi IRIS-teenuse järgmiste väärtustega:

Väli
Väärtus
Kirjeldus

nimi
iiris
Teenuse nimi

võõrustaja
IP
InterSystems IRIS-i serveri host või ip

port
52773
InterSystems IRIS serveri veebiport

tee
/api/atelier
Juuretee

protokoll
http
Protokoll

Jätke ülejäänud väärtused vaikeväärtusteks. Klõpsake nuppu Create ja kirjutage üles loodud teenuse ID.

Marsruut

Nüüd loome marsruudi:

Väli
Väärtus
Kirjeldus

tee
/api/atelier
Juuretee

protokoll
http
Protokoll

service.id
juhend alates 3
Teenus (ID eelmisest etapist)

Jätke ülejäänud väärtused vaikeväärtusteks. Klõpsake nuppu Create ja kirjutage üles loodud marsruudi ID. Vaikimisi kuulab IAM sissetulevaid päringuid pordis 8000. Nüüd saadetakse päringud aadressile http://localhost:8000 ja alustades /api/atelier suunatakse ümber teenusesse InterSystems IRIS.

Katsetamine

Proovime luua päringu REST-kliendis (kasutan Kirjakandja).

Tutvustame InterSystems API Manageri (+ veebiseminar)

Saadame GET-päringu aadressile http://localhost:8000/api/atelier/ (ära unusta / lõpus) ​​ja saada InterSystems IRIS vastuse. Iga päring läbib IAM-i, mis kogub mõõdikuid:

  • HTTP olekukood.
  • Viivitus.
  • Jälgimine (kui see on konfigureeritud).

Tegin veel paar päringut (sh kaks taotlust olematutele lõpp-punktidele nagu /api/atelier/est/), tulemused on kohe armatuurlaual näha:

Tutvustame InterSystems API Manageri (+ veebiseminar)

Töötamine pluginatega

Nüüd, kui meil on marsruut konfigureeritud, saame oma API-d hallata. Saame lisada funktsioone, mis meie teenust täiendavad.

Kõige tavalisem viis API käitumise muutmiseks on pistikprogrammi lisamine. Pistikprogrammid eraldavad individuaalsed funktsioonid ja neid saab ühendada IAM-iga kas globaalselt või ainult üksikute üksustega, nagu kasutaja (kasutajate rühm), teenus või marsruut. Alustuseks lisame marsruudile Rate Limiting plugina. Pistikprogrammi ja marsruudi vahelise ühenduse loomiseks vajame marsruudi kordumatut identifikaatorit (ID).

Taotluste arvu piiramine

Klõpsake vasakpoolses külgriba menüüs valikul Pluginad. Sellel ekraanil näete kõiki aktiivseid pluginaid, kuid kuna see IAM-server on uus, siis aktiivseid pluginaid veel pole. Nii et jätkake järgmise sammuga, klõpsates nuppu "Uus pistikprogramm".

Pistikprogramm, mida vajame, kuulub kategooriasse "Liikluskontroll" ja selle nimi on "Määruse piiramine". Valige see. Siin saate määrata üsna palju seadeid, kuid me hoolime ainult kahest väljast:

Väli
Väärtus
Kirjeldus

marsruudi_id
ID
Marsruudi ID

config.minute
5
Taotluste arv minutis

See on kõik. Pistikprogramm on konfigureeritud ja aktiivne. Pange tähele, et saame valida erinevaid ajavahemikke, näiteks minuti, tunni või päeva. Seadeid saab kombineerida (näiteks 1000 päringut tunnis ja samal ajal 100 päringut minutis). Valisin minutid, kuna see teeb pistikprogrammi funktsionaalsuse kontrollimise lihtsaks.

Kui saadate sama päringu uuesti Postimehes, näete, et vastus tagastatakse 2 lisapäisega:

  • XRateLimit-Limit-minute: 5
  • XRateLimit-jäänud minut: 4

See annab kliendile teada, et ta saab teha kuni 5 päringut minutis ja praeguses ajapilus veel 4 päringut.

Tutvustame InterSystems API Manageri (+ veebiseminar)

Kui esitate sama päringu ikka ja jälle, saab lõpuks saadaolev kvoot otsa ja saate selle asemel HTTP olekukoodi 429 koos järgmise vastuse kehaga:

Tutvustame InterSystems API Manageri (+ veebiseminar)

Oodake minut ja saate uuesti taotlusi esitada.

See on mugav mehhanism, mis võimaldab teil:

  • Kaitske tagaosa koormuspingete eest.
  • Öelge klientidele, kui palju taotlusi nad saavad esitada.
  • Tee API rahaks.

Saate määrata väärtusi erinevatele ajavahemikele ja seeläbi API liiklust teatud aja jooksul sujuvamaks muuta. Oletame, et lubate konkreetsel marsruudil 600 päringut tunnis. Keskmiselt tuleb 10 päringut minutis. Kuid miski ei takista klienti täitmast kõiki 600 taotlust tunni esimesel minutil. Võib-olla on see see, mida vajate. Võib-olla soovite saavutada tunni jooksul ühtlasema koormuse. Määrates välja väärtuse config.minute Väärtus 20 tagab, et teie kasutajad ei tee rohkem kui 20 päringut minutis ja 600 päringut tunnis. See võimaldab väikeseid hüppeid üheminutilise intervalliga võrreldes täielikult keskmistatud 10 päringu vooga minutis, kuid kasutajad ei saa tunnikvooti ühe minuti jooksul kasutada. Nüüd vajavad nad kõigi oma taotluste kasutamiseks vähemalt 30 minutit. Kliendid saavad iga määratud ajaintervalli kohta täiendavaid päiseid, näiteks:

HTTP päis
Väärtus

X-RateLimit-Limit-hour
600

X-RateLimit-Remaining-hour
595

X-RateLimit-Limit-minute
20

X-RateLimit-Remaining-minute
16

Loomulikult on päringupiirangute konfigureerimiseks palju erinevaid viise, sõltuvalt sellest, mida soovite saavutada.

Järeldused

Lõpetan siin, arvan, et InterSystems API Manageri esimese artikli jaoks on piisavalt materjali. Kasutasime ainult ühte enam kui 40 pistikprogrammist. IAM-iga saate teha palju rohkem huvitavaid asju:

  • Lisage kõigile oma API-dele keskne autentimismehhanism.
  • Skaalake koormust mitme teenuse koormuse tasakaalustaja abil.
  • Enne täielikku värskendust lisage testpublikule uusi funktsioone ja veaparandusi.
  • Pakkuge sise- ja välisarendajatele spetsiaalset veebiportaali, mis dokumenteerib kõik API-d.
  • Vahemälu päringud, et vähendada reageerimisaega ja vähendada süsteemi taustaprogrammi koormust.

Viited

Aari

Kutsume teid veebiseminarile “API haldamine InterSystems API haldusega”, mis toimub 21. novembril kell 10:00 Moskva aja järgi (GMT+3).
InterSystems API Manager (IAM) on InterSystems IRIS-i andmeplatvormi uus komponent, mis pakub IT-infrastruktuuris veebi API-liidestele suunduva ja sealt väljuva liikluse jälgimist, kontrolli ja haldamist. Veebiseminaril demonstreerime InterSystems API halduse põhivõimalusi:

  • API liikluse jälgimise tööriistad.
  • API liikluse juhtimine, sealhulgas ribalaiuse juhtimine, API-kõnede arvu piiramine, IP-aadresside lubatud ja keelatud loendite loendite pidamine jne.
  • API turbekonfiguratsiooni tööriistad.
  • Arendajaportaal interaktiivse API dokumentatsiooni avaldamiseks.
  • Üks API juurdepääsupunkt.

Veebiseminar on mõeldud arhitektidele, arendajatele ja süsteemiadministraatoritele.

Registreerimine on vajalik!

Allikas: www.habr.com

Lisa kommentaar