Esittelyssä InterSystems API Manager (+ webinaari)

Julkaisimme äskettäin InterSystems API Managerin (IAM), InterSystems IRIS Data Platformin uuden osan, joka tarjoaa näkyvyyden, hallinnan ja web-sovellusliittymäliikenteen hallinnan IT-infrastruktuurissa.

Tässä artikkelissa näytän sinulle, kuinka IAM otetaan käyttöön, ja esittelen joitain niistä monista ominaisuuksista, jotka ovat käytettävissäsi IAM:n avulla. InterSystems API Managerin avulla voit:

  • Seuraa sovellusliittymää, ymmärrä, kuka käyttää API:ta, mitkä sovellusliittymät ovat suosituimpia ja mitkä vaativat parannusta.
  • Hallitse API:n käyttäjiä ja rajaa API:n käyttöä yksinkertaisista pääsyrajoituksista pyyntöön perustuviin rajoituksiin – sinulla on mukautettu hallinta ja voit reagoida nopeasti muuttuviin API-kulutustottumuksiin.
  • Suojatut sovellusliittymät käyttämällä keskitettyjä suojausmekanismeja, kuten OAuth2.0, LDAP tai Key Token Authentication.
  • Helpota kolmannen osapuolen kehittäjien työtä ja tarjoa heille ylivoimainen API-kokemus avaamalla oma kehittäjäportaali.
  • Skaalaa API ja varmista mahdollisimman pieni vastausviive.

API-hallinta on välttämätöntä SOA- tai mikropalveluarkkitehtuuriin siirtymisessä, mikä yksinkertaistaa yksittäisten (mikro)palvelujen välistä integrointia ja tekee niistä kaikkien ulkoisten ja sisäisten kuluttajien saatavilla. Tämän seurauksena uusia sovellusliittymiä on helpompi luoda, ylläpitää ja käyttää.

Jos käytät jo InterSystems IRIS -järjestelmää, voit lisätä IAM-vaihtoehdon lisenssiisi. IAM-vaihtoehto on ilmainen InterSystems IRIS -asiakkaille, mutta sinun on pyydettävä uusi lisenssiavain InterSystemsiltä aloittaaksesi IAM:n käytön.

Jos et vielä käytä InterSystems IRIS -sovellusta ja aiot kokeilla InterSystems API Manageria, ota yhteyttä InterSystemsiin.

Aloitus ja asennus

InterSystemsin asiakkaat voivat ladata IAM-jakelun verkkosivustolta WRC osio "Ohjelmiston jakelu" ja ajaa Docker-konttina. Järjestelmän vähimmäisvaatimukset:

Aluksi sinun on ladattava Docker-kuva (tärkeää! WRC-arkisto ei ole Docker-kuva, sinun on purettava se, sisällä on Docker-kuva):

docker load -i iam_image.tar

Tämä komento antaa IAM-otoksen myöhempää käyttöä varten palvelimellasi. IAM toimii erillisenä konttina, joten voit skaalata sen itsenäisesti InterSystems IRIS:stä. IAM:n suorittaminen vaatii pääsyn InterSystems IRISiin lisenssin lataamiseksi.

Asenna InterSystems IRIS:

  • Ota verkkosovellus käyttöön /api/IAM
  • Ota käyttäjä käyttöön IAM
  • Vaihda käyttäjän salasana IAM

Aloitetaan nyt IAM-säilö. Arkistosta löydät skriptit iam-setup Windowsille ja Unixille (ja Macille). Nämä komentosarjat auttavat sinua asettamaan ympäristömuuttujat oikein, jolloin IAM-säilö voi muodostaa yhteyden InterSystems IRISiin. Tässä on esimerkki Macissa suoritettavasta komentosarjasta:

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

Kuten näet, IAM-käyttäjän koko kuvan nimi, IP-osoite, InterSystems IRIS -portti ja salasana ovat kaikki mitä tarvitset aloittaaksesi.

Skriptin suorittamisen sijaan voit asettaa ympäristömuuttujat manuaalisesti:

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

Запуск

Nyt käynnistetään IAM suorittamalla komento:

docker-compose up -d

Tämä komento järjestää IAM-säilöt ja varmistaa, että kaikki toimii oikein. Konttien tila tarkistetaan komennolla:

docker ps

Avaa järjestelmänvalvojan käyttöliittymä selaimessasi localhost:8002.

Esittelyssä InterSystems API Manager (+ webinaari)

Se on toistaiseksi tyhjä, koska se on täysin uusi solmu. Muutetaan se. IAM tukee työtilojen käsitettä API:iden jakamiseksi moduuleiksi ja/tai komentoiksi. Siirry "oletus"-työtilaan, jota käytämme kokeiluissamme.

Esittelyssä InterSystems API Manager (+ webinaari)

Tämän työtilan pyyntöjen määrä on edelleen nolla, mutta saat käsityksen IAM:n peruskonsepteista vasemmalla olevasta valikosta. Kaksi ensimmäistä elementtiä: Palvelut ja Reitit ovat tärkeimmät:

  • Palvelu on API, johon haluamme tarjota pääsyn kuluttajille. Siten InterSystems IRIS:n REST API on palvelu, kuten esimerkiksi Google API, jos haluat käyttää sitä.
  • Reitti päättää, mihin Palveluun saapuvat pyynnöt välitetään. Jokaisella reitillä on tietyt ehdot, ja jos ne täyttyvät, pyyntö lähetetään asianmukaiselle palvelulle. Reitti voi esimerkiksi vastata IP-osoitetta, lähettäjän verkkotunnusta, HTTP-menetelmiä, osia URI:sta tai näiden esimerkkien yhdistelmää.

Työkalut

Luodaan InterSystems IRIS -palvelu seuraavilla arvoilla:

Kenttä
Arvo
Kuvaus

nimi
iiris
palvelun nimi

isäntä
IP
InterSystems IRIS -palvelinisäntä tai ip

portti
52773
InterSystems IRIS -palvelimen web-portti

polku
/api/atelier
Juuripolku

protokolla
http
protokolla

Jätä loput arvot oletusarvoiksi. Napsauta painiketta Create ja kirjoita muistiin luodun palvelun tunnus.

reitti

Luodaan nyt reitti:

Kenttä
Arvo
Kuvaus

polku
/api/atelier
Juuripolku

protokolla
http
protokolla

service.id
opas alkaen 3
Palvelu (tunnus edellisestä vaiheesta)

Jätä loput arvot oletusarvoiksi. Napsauta painiketta Create ja kirjoita muistiin luodun reitin tunnus. Oletuksena IAM kuuntelee saapuvia pyyntöjä portista 8000. Nyt pyynnöt lähetetään osoitteeseen http://localhost:8000 ja alkaen /api/atelier ohjataan InterSystems IRISiin.

Testaus

Yritetään luoda pyyntö REST-asiakasohjelmassa (käytän Postinkantaja).

Esittelyssä InterSystems API Manager (+ webinaari)

Lähetetään GET-pyyntö osoitteeseen http://localhost:8000/api/atelier/ (Älä unohda / lopussa) ja saat vastauksen InterSystems IRIS:ltä. Jokainen pyyntö kulkee IAM:n kautta, joka kerää mittareita:

  • HTTP-tilakoodi.
  • Viive.
  • Valvonta (jos määritetty).

Tein vielä muutaman pyynnön (mukaan lukien kaksi pyyntöä olemattomiin päätepisteisiin, kuten /api/atelier/est/), tulokset näkyvät välittömästi kojelaudassa:

Esittelyssä InterSystems API Manager (+ webinaari)

Työskentely pluginien kanssa

Nyt kun meillä on reitti määritetty, voimme hallita sovellusliittymäämme. Voimme lisätä ominaisuuksia, jotka täydentävät palveluamme.

Yleisin tapa muuttaa API:n toimintaa on lisätä laajennus. Laajennukset eristävät yksittäisiä toimintoja ja ne voidaan liittää IAM:iin joko maailmanlaajuisesti tai vain yksittäisiin kokonaisuuksiin, kuten käyttäjä (käyttäjäryhmä), palvelu tai reitti. Aloitamme lisäämällä Reitille Rate Limiting -laajennuksen. Yhteyden muodostamiseksi laajennuksen ja reitin välille tarvitsemme reitin yksilöllisen tunnisteen (ID).

Pyyntöjen määrää rajoitetaan

Valitse vasemman sivupalkin valikosta Plugins. Näet kaikki aktiiviset laajennukset tällä näytöllä, mutta koska tämä IAM-palvelin on uusi, aktiivisia laajennuksia ei vielä ole. Joten siirry seuraavaan vaiheeseen napsauttamalla "New Plugin".

Tarvittava laajennus on "Traffic Control" -kategoriassa ja sen nimi on "Rate Limiting". Valitse se. Täällä voit määrittää useita asetuksia, mutta välitämme vain kahdesta kentästä:

Kenttä
Arvo
Kuvaus

route_id
ID
Reitin tunnus

config.minute
5
Pyyntöjen määrä minuutissa

Siinä kaikki. Plugin on määritetty ja aktiivinen. Huomaa, että voimme valita eri aikavälejä, kuten minuutin, tunnin tai päivän. Asetuksia voidaan yhdistää (esim. 1000 pyyntöä tunnissa ja samalla 100 pyyntöä minuutissa). Valitsin minuutit, koska sen avulla on helppo tarkistaa laajennuksen toimivuus.

Jos lähetät saman pyynnön uudelleen Postmanissa, näet, että vastaus palautetaan kahdella lisäotsikolla:

  • XRateLimit-Limit-minute: 5
  • XRateLimit-Jäljellä oleva minuutti: 4

Tämä kertoo asiakkaalle, että se voi tehdä jopa 5 pyyntöä minuutissa ja voi tehdä 4 muuta pyyntöä nykyisessä aikavälissä.

Esittelyssä InterSystems API Manager (+ webinaari)

Jos teet saman pyynnön uudestaan ​​​​ja uudestaan, käytettävissä oleva kiintiö loppuu lopulta loppuun ja saat sen sijaan HTTP-tilakoodin 429, jossa on seuraava vastausteksti:

Esittelyssä InterSystems API Manager (+ webinaari)

Odota hetki, niin voit lähettää pyyntöjä uudelleen.

Tämä on kätevä mekanismi, jonka avulla voit:

  • Suojaa taustaosaa kuormituspiikkeiltä.
  • Kerro asiakkaille, kuinka monta pyyntöä he voivat tehdä.
  • Kaupallista API.

Voit asettaa arvoja eri aikaväleille ja näin tasoittaa API-liikennettä tietyn ajanjakson aikana. Oletetaan, että sallit 600 pyyntöä tunnissa tietyllä reitillä. Pyyntöjä tulee keskimäärin 10 minuutissa. Mutta mikään ei estä asiakasta suorittamasta kaikkia 600 pyyntöä tunnin ensimmäisen minuutin aikana. Ehkä tämä on mitä tarvitset. Haluat ehkä saavuttaa tasaisemman kuormituksen tunnin aikana. Asettamalla kentän arvo config.minute Arvo 20 varmistaa, että käyttäjäsi tekevät enintään 20 pyyntöä minuutissa ja 600 pyyntöä tunnissa. Tämä mahdollistaa pienet piikit minuutin välein verrattuna täysin keskimääräiseen 10 pyynnön virtaan minuutissa, mutta käyttäjät eivät voi käyttää tuntikiintiötä yhden minuutin ajan. Nyt he tarvitsevat vähintään 30 minuuttia kaikkien pyyntöjensä käyttämiseen. Asiakkaat saavat lisäotsikoita kullekin määritetylle aikavälille, esimerkiksi:

HTTP-otsikko
Arvo

X-RateLimit-Limit-hour
600

X-RateLimit-Jäljellä oleva tunti
595

X-RateLimit-Limit-minute
20

X-RateLimit-Jäljellä oleva minuutti
16

Tietysti on monia eri tapoja määrittää kyselyrajoja riippuen siitä, mitä haluat saavuttaa.

Tulokset

Lopetan tähän, mielestäni materiaalia on tarpeeksi ensimmäiseen InterSystems API Manageria käsittelevään artikkeliin. Käytimme vain yhtä yli 40 laajennuksesta. Voit tehdä IAM:lla monia mielenkiintoisempia asioita:

  • Lisää keskitetty todennusmekanismi kaikille API-liittymillesi.
  • Skaalaa kuormitusta käyttämällä kuormitustasainta useissa palveluissa.
  • Lisää uusia toimintoja ja virheenkorjauksia testiyleisölle ennen täyttä päivitystä.
  • Tarjoa sisäisille ja ulkoisille kehittäjille oma verkkoportaali, joka dokumentoi kaikki API:t.
  • Välimuistipyynnöt lyhentää vasteaikaa ja vähentää järjestelmän taustajärjestelmän kuormitusta.

viittaukset

Webinaari

Kutsumme sinut webinaariin "API Management with InterSystems API Management", joka järjestetään 21. marraskuuta klo 10 Moskovan aikaa (GMT+00).
InterSystems API Manager (IAM) on InterSystems IRIS Data Platformin uusi komponentti, joka tarjoaa IT-infrastruktuurin web-sovellusliittymiin tai sieltä lähtevän liikenteen seurannan, hallinnan ja hallinnan. Webinaarissa esittelemme InterSystems API Managementin keskeiset ominaisuudet:

  • API-liikenteen seurantatyökalut.
  • API-liikenteen hallinta, mukaan lukien kaistanleveyden ohjaus, API-kutsujen määrän rajoittaminen, sallittujen ja kiellettyjen IP-osoitteiden luetteloiden ylläpito jne.
  • API-suojauksen määritystyökalut.
  • Kehittäjäportaali interaktiivisen API-dokumentaation julkaisemiseen.
  • Yksi sovellusliittymän yhteyspiste.

Webinaari on tarkoitettu arkkitehdeille, kehittäjille ja järjestelmävastaaville.

Ilmoittautuminen vaaditaan!

Lähde: will.com

Lisää kommentti