Aféierung InterSystems API Manager (+ Webinar)

Mir hunn viru kuerzem den InterSystems API Manager (IAM) verëffentlecht, en neie Bestanddeel vun der InterSystems IRIS Data Plattform déi Visibilitéit, Kontroll a Gestioun vum Web API Traffic iwwer d'IT Infrastruktur ubitt.

An dësem Artikel weisen ech Iech wéi Dir IAM opstellt an e puer vun de ville Fäegkeeten demonstréieren déi Iech mat IAM verfügbar sinn. InterSystems API Manager erlaabt Iech:

  • Iwwerwaacht d'API, verstitt wien d'API benotzt, wéi eng APIen déi populär sinn, a wéi eng Verbesserung erfuerderen.
  • Kontroll wien d'API benotzt a limitéiert d'API Notzung vun einfachen Zougangsbeschränkungen op Ufro-baséiert Restriktiounen - Dir hutt personaliséiert Kontroll a kënnt séier op d'Verännerunge vum API Konsummuster reagéieren.
  • Séchert APIe mat zentraliséierte Sécherheetsmechanismen wéi OAuth2.0, LDAP oder Key Token Authentifikatioun.
  • Maacht et méi einfach fir Drëtt-Partei Entwéckler a liwwert hinnen eng super API Erfahrung andeems Dir en dedizéierten Entwécklerportal opmaacht.
  • Skala d'API a garantéiert eng minimal Äntwertlatenz.

API Gestioun ass wesentlech fir den Iwwergank op SOA oder Mikroservicearchitektur, vereinfacht Integratioun tëscht eenzelne (Mikro) Servicer, mécht se fir all extern an intern Konsumenten verfügbar. Als Resultat ginn nei APIen méi einfach ze kreéieren, z'erhalen an ze konsuméieren.

Wann Dir schonn InterSystems IRIS benotzt, kënnt Dir d'IAM Optioun op Är Lizenz addéieren. D'IAM Optioun ass gratis fir InterSystems IRIS Clienten, awer Dir musst en neie Lizenzschlëssel vun InterSystems ufroen fir IAM ze benotzen.

Wann Dir nach net InterSystems IRIS benotzt a plangt InterSystems API Manager ze probéieren, da kontaktéiert InterSystems.

Ugefaangen an Installatioun

InterSystems Clienten kënnen d'IAM Verdeelung vun der Websäit eroflueden WRC Sektioun "Software Distribution" a lafen als Docker Container. Minimum System Ufuerderunge:

Am Ufank musst Dir den Docker-Bild eroflueden (Wichteg! D'Archiv mat WRC ass keen Docker-Bild, Dir musst et auspacken, et gëtt en Docker-Bild dobannen):

docker load -i iam_image.tar

Dëse Kommando wäert d'IAM-Bild verfügbar maachen fir spéider op Ärem Server ze benotzen. IAM leeft als separat Container, sou datt Dir et onofhängeg vun InterSystems IRIS kënnt skaléieren. Lafen IAM erfuerdert Zougang zu InterSystems IRIS fir eng Lizenz erofzelueden.

InterSystems IRIS opsetzen:

  • Aktivéiert d'Webapplikatioun /api/IAM
  • Benotzer aktivéieren IAM
  • Benotzerpasswuert änneren IAM

Loosst eis elo den IAM Container starten. Am Archiv fannt Dir Scripten iam-setup fir Windows an Unix (a Mac). Dës Skripte hëllefen Iech d'Ëmfeldvariablen korrekt ze setzen, wat den IAM Container erlaabt eng Verbindung mat InterSystems IRIS opzebauen. Hei ass e Beispill vum Skript deen op Mac leeft:

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

Wéi Dir gesitt, sinn de komplette Bildnumm, IP Adress, InterSystems IRIS Port a Passwuert fir den IAM Benotzer alles wat Dir braucht fir unzefänken.

Amplaz e Skript ze lafen, kënnt Dir Ëmfeldvariablen manuell setzen:

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

Lancéiere

Loosst eis elo IAM starten andeems Dir de Kommando ausféiert:

docker-compose up -d

Dëse Kommando organiséiert d'IAM Container a garantéiert datt alles richteg leeft. De Status vun de Container gëtt iwwerpréift mam Kommando:

docker ps

Öffnen d'Admin-Interface an Ärem Browser localhost:8002.

Aféierung InterSystems API Manager (+ Webinar)

Et ass eidel fir de Moment well et e komplett neie Node ass. Loosst eis dat änneren. IAM ënnerstëtzt d'Konzept vun Aarbechtsberäicher fir APIen an Moduler an / oder Kommandoen opzedeelen. Gitt op den "Standard" Aarbechtsberäich dee mir fir eis Experimenter benotzen.

Aféierung InterSystems API Manager (+ Webinar)

D'Zuel vun Ufroe fir dësen Aarbechtsberäich ass nach ëmmer null, awer Dir kritt eng Iddi iwwer d'Basis IAM Konzepter am Menü op der lénker Säit. Déi éischt zwee Elementer: Servicer a Strecken sinn déi wichtegst:

  • Service ass d'API zu där mir Zougang zu Konsumenten wëllen ubidden. Also ass de REST API an InterSystems IRIS e Service, sou wéi zum Beispill d'Google API wann Dir se benotze wëllt.
  • D'Strooss entscheet op wéi enge Service erakommen Ufroe weidergeleet ginn. All Route huet eng spezifesch Rei vu Konditiounen, a wa se erfëllt sinn, gëtt d'Ufro un de entspriechende Service geschéckt. Zum Beispill kann eng Route mat IP, Sender Domain, HTTP Methoden, Deeler vun enger URI oder eng Kombinatioun vun dëse Beispiller passen.

Service

Loosst eis en InterSystems IRIS Service erstellen, mat de folgende Wäerter:

Beräich
Wäert
Beschreiwung

Numm
Iris
Service Numm

Provider
IP
InterSystems IRIS Server Host oder IP

port
52773
InterSystems IRIS Server Webport

Wee
/api/atelier
Root Wee

Protokoll
http
Protokoll

Loosst déi verbleiwen Wäerter als Standard. Klickt op de Knäppchen Create a schreift d'ID vum erstallte Service erof.

Route

Loosst eis elo e Wee erstellen:

Beräich
Wäert
Beschreiwung

Wee
/api/atelier
Root Wee

Protokoll
http
Protokoll

service.id
Guide vum 3
Service (ID vum viregte Schrëtt)

Loosst déi verbleiwen Wäerter als Standard. Klickt op de Knäppchen Create a schreift d'ID vun der erstallt Route. Par défaut lauschtert IAM fir Entréeën Demanden op port 8000. Elo Ufroe geschéckt ze http://localhost:8000 an ugefaange mat /api/atelier ginn op InterSystems IRIS ëmgeleet.

Testen

Loosst eis probéieren eng Ufro an engem REST Client ze kreéieren (ech benotzen Bréifdréier).

Aféierung InterSystems API Manager (+ Webinar)

Loosst eis eng GET Ufro schécken http://localhost:8000/api/atelier/ (vergiess net / um Enn) a kritt eng Äntwert vum InterSystems IRIS. All Ufro geet duerch IAM déi Metriken sammelt:

  • HTTP Status Code.
  • Verzögerung.
  • Iwwerwachung (wann konfiguréiert).

Ech hunn e puer méi Ufroe gemaach (dorënner zwou Ufroe fir net existent Endpunkte wéi /api/atelier/est/), d'Resultater sinn direkt am Dashboard ze gesinn:

Aféierung InterSystems API Manager (+ Webinar)

Schafft mat Plugins

Elo datt mir eng Route konfiguréiert hunn, kënne mir eis API managen. Mir kënnen Features addéieren déi eise Service ergänzen.

Deen allgemengste Wee fir d'Behuele vun enger API z'änneren ass e Plugin ze addéieren. Plugins isoléieren individuell Funktionalitéit a kënne mat IAM entweder global oder nëmmen un eenzel Entitéite verbonne sinn, sou wéi e Benotzer (Grupp vu Benotzer), Service oder Route. Mir fänke mat der Rate Limiting Plugin un d'Route un. Fir eng Verbindung tëscht dem Plugin an der Streck opzebauen, brauche mir en eenzegaartegen Identifizéierer (ID) vun der Streck.

Limitéiert d'Zuel vun Ufroen

Klickt Plugins an der lénkser Sidebar Menü. Dir kënnt all déi aktiv Plugins op dësem Écran gesinn, awer well dësen IAM Server nei ass, ginn et nach keng aktiv Plugins. Also fuert op den nächste Schrëtt andeems Dir op "Neie Plugin" klickt.

De Plugin dee mir brauchen ass an der Kategorie "Traffic Control" a gëtt "Rate Limiting" genannt. Wielt et. Et gi zimmlech e puer Astellungen déi Dir hei astellen kënnt, awer mir këmmeren eis nëmmen ëm zwee Felder:

Beräich
Wäert
Beschreiwung

route_id
ID
Route ID

config.minute
5
Zuel vun Demanden pro Minutt

Dat ass alles. De Plugin ass konfiguréiert an aktiv. Bedenkt datt mir verschidden Zäitintervaller wielen kënnen, wéi eng Minutt, eng Stonn oder en Dag. D'Astellunge kënnen kombinéiert ginn (zum Beispill 1000 Ufroen pro Stonn a gläichzäiteg 100 Ufroen pro Minutt). Ech hunn Minutten gewielt well et et einfach mécht d'Funktionalitéit vum Plugin ze kontrolléieren.

Wann Dir déiselwecht Ufro nach eng Kéier am Postman schéckt, gesitt Dir datt d'Äntwert mat 2 zousätzlech Header zréckgeet:

  • XRateLimit-Limit-Minute: 5
  • XRateLimit-Resteminutt: 4

Dëst seet de Client datt et bis zu 5 Ufroe pro Minutt ka maachen a kann 4 méi Ufroen am aktuellen Zäitplang maachen.

Aféierung InterSystems API Manager (+ Webinar)

Wann Dir déi selwecht Ufro ëmmer erëm maacht, wäert Dir schlussendlech aus verfügbare Quote lafen an amplaz en HTTP Statuscode vu 429 mat dem folgenden Äntwertkierper kréien:

Aféierung InterSystems API Manager (+ Webinar)

Waart eng Minutt an Dir kënnt erëm Ufroen ofginn.

Dëst ass e praktesche Mechanismus deen Iech erlaabt:

  • Schützt de Backend vu Belaaschtung.
  • Sot de Clienten wéi vill Ufroe si kënne maachen.
  • D'API monetiséieren.

Dir kënnt Wäerter fir verschidden Zäitintervaller setzen an doduerch den API Traffic iwwer eng gewëssen Zäit glat ausmaachen. Loosst eis soen datt Dir erlaabt 600 Ufroen pro Stonn op enger bestëmmter Route. Am Duerchschnëtt ginn et 10 Ufroen pro Minutt. Awer näischt verhënnert datt de Client all 600 Ufroen an der éischter Minutt vun der Stonn ofgeschloss huet. Vläicht ass dat wat Dir braucht. Dir wëllt vläicht eng méi gläichméisseg Laascht am Laf vun enger Stonn erreechen. Andeems Dir de Feldwäert setzt config.minute E Wäert vun 20 garantéiert datt Är Benotzer net méi wéi 20 Ufroe pro Minutt a 600 Ufroe pro Stonn maachen. Dëst erlaabt fir kleng Spikes op enger Minutt Intervall am Verglach zu engem voll Moyenne Flux vun 10 Ufroen pro Minutt, mee Benotzer kann de Stonneplang Quote fir eng Minutt net benotzen. Elo brauche se op d'mannst 30 Minutten fir all hir Ufroen ze benotzen. Cliente kréien zousätzlech Header fir all spezifizéiert Zäitintervall, zum Beispill:

HTTP Header
Wäert

X-RateLimit-Limit-Stonn
600

X-RateLimit-Rescht Stonn
595

X-RateLimit-Limit-Minutt
20

X-RateLimit-Rescht Minutt
16

Natierlech ginn et vill verschidde Weeër fir Ufrolimiten ze konfiguréieren ofhängeg vun deem wat Dir wëllt erreechen.

Conclusiounen

Ech wäert hei fäerdeg sinn, ech mengen et gëtt genuch Material fir den éischten Artikel iwwer InterSystems API Manager. Mir hunn nëmmen ee vun iwwer 40 Plugins benotzt. Et gi vill méi interessant Saachen déi Dir mat IAM maache kënnt:

  • Füügt en zentrale Authentifikatiounsmechanismus fir all Är APIen.
  • Skala d'Laascht mat engem Lastbalancer iwwer verschidde Servicer.
  • Füügt nei Funktionalitéit a Bugfixer un engem Testpublikum virun engem kompletten Update.
  • Bitt intern an extern Entwéckler mat engem dedizéierten Webportal deen all APIen dokumentéiert.
  • Cache Ufroe fir d'Äntwertzäit ze reduzéieren an d'Laascht op de System Backend ze reduzéieren.

Referenze

Webinar

Mir invitéieren Iech op de Webinar "API Management mat InterSystems API Management", deen den 21. November um 10:00 Moskau Zäit (GMT+3) stattfënnt.
InterSystems API Manager (IAM) ass en neie Bestanddeel vun der InterSystems IRIS Data Plattform déi Iwwerwaachung, Kontroll a Gestioun vum Traffic op / vu Web APIs bannent der IT Infrastruktur ubitt. Um Webinar wäerte mir d'Schlësselfäegkeete vum InterSystems API Management demonstréieren:

  • API Verkéier Iwwerwachung Tools.
  • API Verkéier Kontrollen, dorënner Bandbreedung Kontroll, Limitatioun vun der Unzuel vun API Appellen, Erhalen Lëschte vun erlaabt a refuséiert Lëschte vun IP Adressen, etc.
  • API Sécherheet Configuratioun Tools.
  • Entwécklerportal fir interaktiv API Dokumentatioun ze publizéieren.
  • Eenzege Punkt vum Zougang zu der API.

De Webinar ass fir Architekten, Entwéckler a Systemadministratoren geduecht.

Aschreiwung ass néideg!

Source: will.com

Setzt e Commentaire