Yntroduksje fan InterSystems API Manager (+ webinar)

Wy hawwe koartlyn InterSystems API Manager (IAM) frijlitten, in nije komponint fan it InterSystems IRIS Data Platform dat sichtberens, kontrôle en behear leveret fan web API-ferkear oer de IT-ynfrastruktuer.

Yn dit artikel sil ik jo sjen litte hoe't jo IAM kinne ynstelle en guon fan 'e protte mooglikheden demonstrearje dy't foar jo beskikber binne mei IAM. InterSystems API Manager kinne jo:

  • Kontrolearje de API, begryp wa't de API brûkt, hokker API's de populêrste binne, en hokker ferbettering nedich is.
  • Kontrolearje wa't de API brûkt en beheine API-gebrûk fan ienfâldige tagongsbeperkingen oant beheiningen op fersyk - jo hawwe oanpaste kontrôle en kinne fluch reagearje op feroarjende API-konsumpsjepatroanen.
  • Feilige API's mei sintralisearre feiligensmeganismen lykas OAuth2.0, LDAP of Key Token Authentication.
  • Meitsje it makliker foar ûntwikkelders fan tredden en jouwe se in superieure API-ûnderfining troch in tawijd ûntwikkelderportaal te iepenjen.
  • Skaalje de API en soargje foar minimale antwurdlatinsje.

API-behear is essensjeel foar de oergong nei SOA- of mikrotsjinst-arsjitektuer, it ferienfâldigjen fan yntegraasje tusken yndividuele (mikro) tsjinsten, wêrtroch se beskikber binne foar alle eksterne en ynterne konsuminten. As gefolch wurde nije API's makliker te meitsjen, te ûnderhâlden en te konsumearjen.

As jo ​​InterSystems IRIS al brûke, kinne jo de IAM-opsje tafoegje oan jo lisinsje. De IAM-opsje is fergees foar InterSystems IRIS-klanten, mar jo moatte in nije lisinsjekaai oanfreegje fan InterSystems om IAM te brûken.

As jo ​​noch gjin InterSystems IRIS brûke en fan plan binne om InterSystems API Manager te besykjen, nim dan kontakt op mei InterSystems.

Te begjinnen en ynstallaasje

InterSystems-klanten kinne de IAM-distribúsje downloade fan 'e webside WRC seksje "Software-distribúsje" en rinne as in Docker-kontener. Minimum systeem easken:

Yn it earstoan moatte jo de Docker-ôfbylding downloade (Wichtich! It argyf mei WRC is gjin Docker-ôfbylding, jo moatte it útpakke, d'r is in Docker-ôfbylding yn):

docker load -i iam_image.tar

Dit kommando sil de IAM-ôfbylding beskikber meitsje foar letter gebrûk op jo tsjinner. IAM rint as in aparte kontener, sadat jo it ûnôfhinklik kinne skaalje fan InterSystems IRIS. It útfieren fan IAM fereasket tagong ta InterSystems IRIS om in lisinsje te downloaden.

Ynstelle InterSystems IRIS:

  • Aktivearje de webapplikaasje /api/IAM
  • Brûker ynskeakelje IAM
  • Feroarje brûkerswachtwurd IAM

Litte wy no de IAM-kontener begjinne. Yn it argyf fine jo skripts iam-setup foar Windows en Unix (en Mac). Dizze skripts sille jo helpe om de omjouwingsfariabelen goed yn te stellen, wêrtroch de IAM-kontener in ferbining mei InterSystems IRIS kin meitsje. Hjir is in foarbyld fan it skript dat op Mac rint:

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

Sa't jo sjen kinne, binne de folsleine ôfbyldingsnamme, IP-adres, InterSystems IRIS-poarte en wachtwurd foar de IAM-brûker alles wat jo nedich binne om te begjinnen.

Ynstee fan in skript út te fieren, kinne jo omjouwingsfariabelen manuell ynstelle:

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

Te rinnen

Litte wy no IAM starte troch it kommando út te fieren:

docker-compose up -d

Dit kommando organisearret de IAM-konteners en soarget derfoar dat alles goed rint. De status fan konteners wurdt kontrolearre mei it kommando:

docker ps

Iepenje de admin-ynterface yn jo browser localhost:8002.

Yntroduksje fan InterSystems API Manager (+ webinar)

It is no leech, om't it in folslein nij knooppunt is. Litte wy dat feroarje. IAM stipet it konsept fan wurkromten foar it dielen fan API's yn modules en / of kommando's. Gean nei de "standert" wurkromte dy't wy sille brûke foar ús eksperiminten.

Yntroduksje fan InterSystems API Manager (+ webinar)

It oantal oanfragen foar dizze wurkromte is noch nul, mar jo krije in idee fan 'e basis IAM-konsepten yn it menu links. De earste twa eleminten: Tsjinsten en rûtes binne de wichtichste:

  • Tsjinst is de API dêr't wy tagong wolle jaan oan konsuminten. Sa is de REST API yn InterSystems IRIS in tsjinst, lykas bygelyks de Google API as jo it brûke wolle.
  • De Rûte beslút nei hokker Tsjinst ynkommende oanfragen trochstjoerd wurde moatte. Elke rûte hat in spesifike set fan betingsten, en as se foldien wurde, wurdt it fersyk stjoerd nei de korrespondearjende Service. Bygelyks, in rûte kin oerienkomme mei IP, stjoerderdomein, HTTP-metoaden, dielen fan in URI, of in kombinaasje fan dizze foarbylden.

tsjinst

Litte wy in InterSystems IRIS-tsjinst oanmeitsje, mei de folgjende wearden:

fjild
wearde
beskriuwing

namme
iris
Service Namme

gasthear
IP
InterSystems IRIS tsjinner host of ip

haven
52773
InterSystems IRIS tsjinner web haven

paad
/api/atelier
Root paad

Protokol
http
Protokol

Lit de oerbleaune wearden as standert. Klikje op de knop Create en skriuw de ID fan de oanmakke tsjinst op.

Route

Litte wy no in rûte oanmeitsje:

fjild
wearde
beskriuwing

paad
/api/atelier
Root paad

Protokol
http
Protokol

service.id
gids fan 3
Tsjinst (ID fan foarige stap)

Lit de oerbleaune wearden as standert. Klikje op de knop Create en skriuw de ID fan 'e makke rûte op. Standert harket IAM foar ynkommende fersiken op poarte 8000. No fersiken stjoerd nei http://localhost:8000 en begjinnend mei /api/atelier wurde omlaat nei InterSystems IRIS.

Testing

Litte wy besykje in fersyk te meitsjen yn in REST-kliïnt (ik brûk Postrinner).

Yntroduksje fan InterSystems API Manager (+ webinar)

Litte wy in GET-fersyk stjoere nei http://localhost:8000/api/atelier/ (net ferjitte / oan it ein) en ûntfange in antwurd fan InterSystems IRIS. Elk fersyk giet fia IAM dy't metriken sammelt:

  • HTTP status koade.
  • Fertraging.
  • Monitoring (as ynsteld).

Ik haw noch in pear oanfragen makke (ynklusyf twa oanfragen foar net-besteande einpunten lykas /api/atelier/est/), de resultaten binne daliks sichtber yn it dashboard:

Yntroduksje fan InterSystems API Manager (+ webinar)

Wurkje mei plugins

No't wy in rûte hawwe konfigureare, kinne wy ​​ús API beheare. Wy kinne funksjes tafoegje dy't ús tsjinst oanfolje.

De meast foarkommende manier om it gedrach fan in API te feroarjen is in plugin ta te foegjen. Ynstekkers isolearje yndividuele funksjonaliteit en kinne wurde ferbûn mei IAM itsij globaal of allinnich oan yndividuele entiteiten, lykas in brûker (groep brûkers), Service of Route. Wy sille begjinne mei it tafoegjen fan de Rate Limiting plugin oan 'e rûte. Om in ferbining te meitsjen tusken de plugin en de rûte, hawwe wy in unike identifier (ID) fan 'e rûte nedich.

Beheining fan it oantal oanfragen

Klikje Plugins yn it linker sydbalkemenu. Jo kinne alle aktive plugins op dit skerm sjen, mar om't dizze IAM-tsjinner nij is, binne d'r noch gjin aktive plugins. Dus gean nei de folgjende stap troch te klikken op "Nije plugin".

De plugin dy't wy nedich binne is yn 'e kategory "Ferkearskontrôle" en hjit "Rate Limiting". Selektearje it. D'r binne nochal wat ynstellings dy't jo hjir kinne ynstelle, mar wy skele allinich oer twa fjilden:

fjild
wearde
beskriuwing

route_id
ID
Rûte ID

config.minute
5
Oantal oanfragen per minút

Da's alles. De plugin is konfigurearre en aktyf. Tink derom dat wy ferskate tiidintervallen kinne kieze, lykas in minút, in oere of in dei. De ynstellings kinne wurde kombinearre (bygelyks 1000 fersiken per oere en tagelyk 100 fersiken per minuut). Ik keas minuten om't it it maklik makket om de funksjonaliteit fan 'e plugin te kontrolearjen.

As jo ​​itselde fersyk nochris yn Postman stjoere, sille jo sjen dat it antwurd weromkomt mei 2 ekstra kopteksten:

  • XRateLimit-Limit-minút: 5
  • XRateLimit-Remaining-minút: 4

Dit fertelt de kliïnt dat it kin meitsje oant 5 fersiken per minuut en kin meitsje 4 mear fersiken yn de hjoeddeiske tiid slot.

Yntroduksje fan InterSystems API Manager (+ webinar)

As jo ​​​​itselde fersyk hieltyd wer meitsje, sille jo úteinlik gjin beskikber kwota krije en ynstee krije jo in HTTP-statuskoade fan 429 mei it folgjende antwurdlichem:

Yntroduksje fan InterSystems API Manager (+ webinar)

Wachtsje even en jo kinne wer oanfragen yntsjinje.

Dit is in handich meganisme wêrmei jo:

  • Beskermje de efterkant fan load surges.
  • Fertel kliïnten hoefolle oanfragen se kinne meitsje.
  • Monetisearje de API.

Jo kinne wearden ynstelle foar ferskate tiidintervallen en sa it API-ferkear oer in bepaalde perioade glêdje. Litte we sizze dat jo tastean 600 fersiken per oere op in bepaalde rûte. Gemiddeld binne d'r 10 oanfragen per minuut. Mar neat foarkomt dat de kliïnt alle 600 oanfragen yn 'e earste minút fan' e oere foltôgje. Miskien is dit wat jo nedich hawwe. Jo meie wolle berikke in mear selsstannige lading yn 'e rin fan in oere. Troch it ynstellen fan it fjild wearde config.minute In wearde fan 20 soarget derfoar dat jo brûkers net mear as 20 oanfragen per minuut en 600 oanfragen per oere meitsje. Dit soarget foar lytse spikes op in minút ynterval yn ferliking mei in folslein gemiddelde stream fan 10 oanfragen per minút, mar brûkers kinne it oere-kwota foar ien minút net brûke. No sille se op syn minst 30 minuten nedich wêze om al har oanfragen te brûken. Klanten sille ekstra kopteksten krije foar elk opjûne tiidynterval, bygelyks:

HTTP Header
wearde

X-RateLimit-Limit-oere
600

X-RateLimit-Remaining-oere
595

X-RateLimit-Limit-minút
20

X-RateLimit-Remaining-minút
16

Fansels binne d'r in protte ferskillende manieren om querygrinzen te konfigurearjen ôfhinklik fan wat jo wolle berikke.

befinings

Ik sil hjir ôfmeitsje, ik tink dat d'r genôch materiaal is foar it earste artikel oer InterSystems API Manager. Wy brûkten mar ien fan mear dan 40 plugins. D'r binne folle mear nijsgjirrige dingen dy't jo kinne dwaan mei IAM:

  • Foegje in sintrale autentikaasjemeganisme ta foar al jo API's.
  • Skaalje de lading mei in loadbalancer oer meardere tsjinsten.
  • Foegje nije funksjonaliteit en bugfixes ta oan in testpublyk foar in folsleine update.
  • Biede ynterne en eksterne ûntwikkelders mei in tawijd webportaal dat alle API's dokumintearret.
  • Cache-fersiken om reaksjetiid te ferminderjen en de lading op 'e systeembackend te ferminderjen.

referinsjes

Webinar

Wy noegje jo út foar it webinar "API Management mei InterSystems API Management", dat sil plakfine op 21 novimber om 10:00 Moskouske tiid (GMT+3).
InterSystems API Manager (IAM) is in nije komponint fan it InterSystems IRIS Data Platform dat tafersjoch, kontrôle en behear fan ferkear nei/fan web API's binnen de IT-ynfrastruktuer leveret. Op it webinar sille wy de kaaimooglikheden fan InterSystems API Management demonstrearje:

  • API ferkear monitoring ark.
  • API-ferkearkontrôles, ynklusyf bânbreedtekontrôle, it beheinen fan it oantal API-oproppen, it behâld fan listen mei tastiene en wegere listen fan IP-adressen, ensfh.
  • API feiligens konfiguraasje ark.
  • Untwikkelingsportaal foar it publisearjen fan ynteraktive API-dokumintaasje.
  • Ien punt fan tagong ta de API.

It webinar is bedoeld foar arsjitekten, ûntwikkelders en systeembehearders.

Registraasje is nedich!

Boarne: www.habr.com

Add a comment