Ṣafihan Alakoso InterSystems API (+ webinar)

Laipẹ a ṣe ifilọlẹ InterSystems API Manager (IAM), paati tuntun ti InterSystems IRIS Data Platform ti o pese hihan, iṣakoso, ati iṣakoso ti ijabọ API wẹẹbu kọja awọn amayederun IT.

Ninu nkan yii, Emi yoo fihan ọ bi o ṣe le ṣeto IAM ati ṣafihan diẹ ninu ọpọlọpọ awọn agbara ti o wa fun ọ pẹlu IAM. InterSystems API Manager gba ọ laaye lati:

  • Bojuto API, loye tani o nlo API, kini awọn API jẹ olokiki julọ, ati awọn ti o nilo ilọsiwaju.
  • Ṣakoso ẹniti o nlo API ati fi opin si lilo API lati awọn ihamọ iwọle si irọrun si awọn ihamọ ti o da lori - o ni iṣakoso aṣa ati pe o le dahun ni kiakia si iyipada awọn ilana lilo API.
  • Awọn API ti o ni aabo ni lilo awọn ọna aabo aarin gẹgẹbi OAuth2.0, LDAP tabi Ijeri Tokini Bọtini.
  • Jẹ ki o rọrun fun awọn olupilẹṣẹ ẹni-kẹta ki o pese wọn pẹlu iriri API ti o ga julọ nipa ṣiṣi ọna abawọle oluṣeto igbẹhin kan.
  • Ṣe iwọn API ki o rii daju airi esi to kere.

Iṣakoso API jẹ pataki fun iyipada si SOA tabi ile-iṣẹ microservice, simplifying isọpọ laarin awọn iṣẹ kọọkan (micro) kọọkan, ṣiṣe wọn wa si gbogbo awọn onibara ita ati inu. Bi abajade, awọn API tuntun di rọrun lati ṣẹda, ṣetọju, ati jijẹ.

Ti o ba ti nlo InterSystems IRIS tẹlẹ, o le ṣafikun aṣayan IAM si iwe-aṣẹ rẹ. Aṣayan IAM jẹ ọfẹ fun awọn alabara InterSystems IRIS, ṣugbọn o gbọdọ beere bọtini iwe-aṣẹ tuntun lati InterSystems lati bẹrẹ lilo IAM.

Ti o ko ba tii lo InterSystems IRIS ati pe o n gbero lati gbiyanju InterSystems API Manager, jọwọ kan si InterSystems.

Bibẹrẹ ati fifi sori ẹrọ

Awọn alabara InterSystems le ṣe igbasilẹ pinpin IAM lati oju opo wẹẹbu naa WRC apakan “Pinpin Software” ati ṣiṣe bi eiyan Docker. Awọn ibeere eto ti o kere julọ:

Ni ibẹrẹ, o nilo lati ṣe igbasilẹ aworan Docker (Pataki! Ile-ipamọ pẹlu WRC kii ṣe aworan Docker, o nilo lati tu silẹ, aworan Docker wa ninu):

docker load -i iam_image.tar

Aṣẹ yii yoo jẹ ki aworan IAM wa fun lilo nigbamii lori olupin rẹ. IAM nṣiṣẹ bi eiyan lọtọ, nitorinaa o le ṣe iwọn rẹ ni ominira lati InterSystems IRIS. Ṣiṣe IAM nilo iraye si InterSystems IRIS lati ṣe igbasilẹ iwe-aṣẹ kan.

Ṣeto InterSystems IRIS:

  • Mu ohun elo wẹẹbu ṣiṣẹ /api/IAM
  • Mu olumulo ṣiṣẹ IAM
  • Yi ọrọigbaniwọle olumulo pada IAM

Bayi jẹ ki a bẹrẹ apoti IAM. Ninu ile ifi nkan pamosi iwọ yoo wa awọn iwe afọwọkọ iam-setup fun Windows ati Unix (ati Mac). Awọn iwe afọwọkọ wọnyi yoo ṣe iranlọwọ fun ọ lati ṣeto awọn oniyipada ayika ni deede, gbigba gba eiyan IAM lati fi idi asopọ kan mulẹ pẹlu InterSystems IRIS. Eyi ni apẹẹrẹ ti iwe afọwọkọ ti nṣiṣẹ lori Mac:

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

Bii o ti le rii, orukọ aworan ni kikun, adiresi IP, InterSystems IRIS ibudo ati ọrọ igbaniwọle fun olumulo IAM ni gbogbo ohun ti o nilo lati bẹrẹ.

Dipo ṣiṣe iwe afọwọkọ kan, o le ṣeto awọn oniyipada ayika pẹlu ọwọ:

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

Запуск

Bayi jẹ ki a ṣe ifilọlẹ IAM nipa ṣiṣe aṣẹ naa:

docker-compose up -d

Aṣẹ yii ṣeto awọn apoti IAM ati rii daju pe ohun gbogbo nṣiṣẹ ni deede. Ipo ti awọn apoti jẹ ṣayẹwo nipa lilo aṣẹ:

docker ps

Ṣii wiwo abojuto ninu ẹrọ aṣawakiri rẹ localhost:8002.

Ṣafihan Alakoso InterSystems API (+ webinar)

O ṣofo fun bayi nitori pe o jẹ ipade tuntun patapata. Jẹ ki a yi iyẹn pada. IAM ṣe atilẹyin imọran ti awọn aaye iṣẹ fun pinpin awọn API si awọn modulu ati/tabi awọn aṣẹ. Lọ si aaye iṣẹ “aiyipada” eyiti a yoo lo fun awọn idanwo wa.

Ṣafihan Alakoso InterSystems API (+ webinar)

Nọmba awọn ibeere fun aaye iṣẹ yii tun jẹ odo, ṣugbọn iwọ yoo ni imọran ti awọn imọran IAM ipilẹ ninu akojọ aṣayan ni apa osi. Awọn eroja akọkọ meji: Awọn iṣẹ ati Awọn ipa ọna jẹ pataki julọ:

  • Iṣẹ jẹ API si eyiti a fẹ lati pese iraye si awọn onibara. Nitorinaa, API REST ni InterSystems IRIS jẹ Iṣẹ kan, bii, fun apẹẹrẹ, Google API ti o ba fẹ lo.
  • Ọna naa pinnu iru awọn ibeere ti nwọle Iṣẹ yẹ ki o firanṣẹ siwaju. Ọna kọọkan ni awọn ipo kan pato, ati pe ti wọn ba pade, a firanṣẹ ibeere naa si Iṣẹ ti o yẹ. Fun apẹẹrẹ, Ipa ọna le baramu IP, agbegbe olufiranṣẹ, awọn ọna HTTP, awọn apakan ti URI, tabi apapo awọn apẹẹrẹ wọnyi.

iṣẹ

Jẹ ki a ṣẹda InterSystems IRIS Iṣẹ, pẹlu awọn iye wọnyi:

Aaye
Itumo
Apejuwe

orukọ
iris
Orukọ Iṣẹ

ogun
IP
InterSystems IRIS olupin olupin tabi ip

ibudo
52773
Ibudo oju opo wẹẹbu olupin InterSystems IRIS

ọna
/api/atelier
Gbongbo ona

Ilana
http
Ilana

Fi awọn iye to ku silẹ bi aiyipada. Tẹ bọtini naa Create ati kọ ID ti Iṣẹ ti o ṣẹda.

Ipa ọna

Bayi jẹ ki a ṣẹda ọna kan:

Aaye
Itumo
Apejuwe

ọna
/api/atelier
Gbongbo ona

Ilana
http
Ilana

iṣẹ.id
itọsọna lati 3
Iṣẹ (ID lati igbesẹ ti tẹlẹ)

Fi awọn iye to ku silẹ bi aiyipada. Tẹ bọtini naa Create ki o si kọ si isalẹ awọn ID ti awọn da Route. Nipa aiyipada, IAM ngbọ fun awọn ibeere ti nwọle lori ibudo 8000. Bayi awọn ibeere ranṣẹ si http://localhost:8000 ati bẹrẹ pẹlu /api/atelier ti wa ni darí si InterSystems IRIS.

Igbeyewo

Jẹ ki a gbiyanju ṣiṣẹda ibeere kan ni alabara REST (Mo n lo Oluṣapẹẹrẹ).

Ṣafihan Alakoso InterSystems API (+ webinar)

Jẹ ki a firanṣẹ ibeere GET kan si http://localhost:8000/api/atelier/ (maṣe gbagbe / ni ipari) ati gba esi lati InterSystems IRIS. Ibeere kọọkan lọ nipasẹ IAM eyiti o gba awọn metiriki:

  • HTTP koodu ipo.
  • Idaduro.
  • Abojuto (ti o ba tunto).

Mo ṣe awọn ibeere diẹ diẹ sii (pẹlu awọn ibeere meji si awọn aaye ipari ti ko si tẹlẹ bii /api/atelier/est/), awọn abajade yoo han lẹsẹkẹsẹ ninu dasibodu naa:

Ṣafihan Alakoso InterSystems API (+ webinar)

Ṣiṣẹ pẹlu awọn afikun

Ni bayi ti a ti tunto Ọna kan, a le ṣakoso API wa. A le ṣafikun awọn ẹya ti yoo ṣe iranlowo iṣẹ wa.

Ọna ti o wọpọ julọ lati yi ihuwasi API pada ni lati ṣafikun ohun itanna kan. Awọn afikun ya sọtọ iṣẹ-ṣiṣe olukuluku ati pe o le sopọ si IAM boya agbaye tabi si awọn nkan kọọkan nikan, gẹgẹbi Olumulo (ẹgbẹ awọn olumulo), Iṣẹ tabi Ipa ọna. A yoo bẹrẹ nipa fifi ohun itanna Idiwọn Oṣuwọn kun si Ipa ọna. Lati fi idi asopọ kan mulẹ laarin ohun itanna ati ipa ọna, a nilo idanimọ alailẹgbẹ (ID) ti ipa-ọna.

Idiwọn nọmba ti awọn ibeere

Tẹ Awọn afikun ni apa osi akojọ aṣayan. O le rii gbogbo awọn afikun ti nṣiṣe lọwọ loju iboju yii, ṣugbọn niwọn igba ti olupin IAM yii jẹ tuntun, ko si awọn afikun ti nṣiṣe lọwọ sibẹsibẹ. Nitorinaa tẹsiwaju si igbesẹ ti n tẹle nipa tite “Afikun Tuntun”.

Ohun itanna ti a nilo wa ni ẹka “Iṣakoso ijabọ” ati pe a pe ni “Idiwọn Oṣuwọn”. Yan o. Awọn eto diẹ wa ti o le ṣeto nibi, ṣugbọn a bikita nipa awọn aaye meji nikan:

Aaye
Itumo
Apejuwe

route_id
ID
ID ipa ọna

config.iseju
5
Nọmba awọn ibeere fun iṣẹju kan

Gbogbo ẹ niyẹn. Ohun itanna ti wa ni tunto ati lọwọ. Ṣe akiyesi pe a le yan awọn aaye arin akoko oriṣiriṣi, gẹgẹbi iṣẹju kan, wakati kan tabi ọjọ kan. Awọn eto le ni idapo (fun apẹẹrẹ, awọn ibeere 1000 fun wakati kan ati ni akoko kanna awọn ibeere 100 fun iṣẹju kan). Mo yan awọn iṣẹju nitori pe o jẹ ki o rọrun lati ṣayẹwo iṣẹ ṣiṣe ohun itanna naa.

Ti o ba fi ibeere kanna ranṣẹ lẹẹkansi ni Postman, iwọ yoo rii pe esi ti pada pẹlu awọn akọle 2 afikun:

  • XRateLimit-Iṣẹju-iṣẹju: 5
  • XRateLimit-Iṣẹju-iṣẹju: 4

Eyi sọ fun alabara pe o le ṣe to awọn ibeere 5 fun iṣẹju kan ati pe o le ṣe awọn ibeere 4 diẹ sii ni aaye akoko lọwọlọwọ.

Ṣafihan Alakoso InterSystems API (+ webinar)

Ti o ba ṣe ibeere kanna leralera, iwọ yoo pari ni ipari ti ipin ti o wa ati dipo gba koodu ipo HTTP ti 429 pẹlu ara esi atẹle:

Ṣafihan Alakoso InterSystems API (+ webinar)

Duro iṣẹju kan ati pe iwọ yoo ni anfani lati fi awọn ibeere silẹ lẹẹkansi.

Eyi jẹ ẹrọ ti o rọrun ti o fun ọ laaye lati:

  • Dabobo awọn backend lati fifuye surges.
  • Sọ fun awọn alabara iye awọn ibeere ti wọn le ṣe.
  • Ṣe owo API.

O le ṣeto awọn iye fun awọn aaye arin akoko oriṣiriṣi ati nitorinaa dan ijabọ API lori akoko kan. Jẹ ki a sọ pe o gba awọn ibeere 600 laaye fun wakati kan lori Ọna kan pato. Ni apapọ awọn ibeere 10 wa fun iṣẹju kan. Ṣugbọn ko si ohun ti o ṣe idiwọ fun alabara lati pari gbogbo awọn ibeere 600 ni iṣẹju akọkọ ti wakati naa. Boya eyi ni ohun ti o nilo. O le fẹ lati ṣaṣeyọri paapaa fifuye paapaa lori akoko ti wakati kan. Nipa ṣeto iye aaye config.minute Iye kan ti 20 ṣe idaniloju pe awọn olumulo rẹ ko ṣe diẹ sii ju awọn ibeere 20 fun iṣẹju kan ati awọn ibeere 600 fun wakati kan. Eyi ngbanilaaye fun awọn spikes kekere lori aarin iṣẹju kan ni akawe si ṣiṣan aropin ni kikun ti awọn ibeere 10 fun iṣẹju kan, ṣugbọn awọn olumulo ko le lo ipin wakati fun iṣẹju kan. Bayi wọn yoo nilo o kere ju ọgbọn iṣẹju lati lo gbogbo awọn ibeere wọn. Awọn alabara yoo gba awọn akọle afikun fun aarin akoko kọọkan, fun apẹẹrẹ:

HTTP Akọsori
Itumo

X-RateLimit-Opin-wakati
600

X-RateLimit-Wakati to ku
595

X-RateLimit-Iwọn-iṣẹju-iṣẹju
20

X-RateLimit-Iṣẹju-iṣẹju
16

Nitoribẹẹ, ọpọlọpọ awọn ọna oriṣiriṣi lo wa lati tunto awọn opin ibeere da lori ohun ti o fẹ lati ṣaṣeyọri.

awari

Emi yoo pari nibi, Mo ro pe ohun elo to wa fun nkan akọkọ nipa InterSystems API Manager. A nikan lo ọkan ninu awọn afikun 40 ju. Ọpọlọpọ awọn nkan ti o nifẹ si wa ti o le ṣe pẹlu IAM:

  • Ṣafikun ọna ṣiṣe ijẹrisi aarin fun gbogbo awọn API rẹ.
  • Ṣe iwọn fifuye naa nipa lilo iwọntunwọnsi fifuye kọja Awọn iṣẹ lọpọlọpọ.
  • Ṣafikun iṣẹ ṣiṣe tuntun ati awọn atunṣe kokoro si olugbo idanwo ṣaaju imudojuiwọn ni kikun.
  • Pese awọn olupilẹṣẹ inu ati ita pẹlu ọna abawọle wẹẹbu iyasọtọ ti n ṣe akọsilẹ gbogbo awọn API.
  • Awọn ibeere kaṣe lati dinku akoko idahun ati dinku fifuye lori ẹhin eto naa.

jo

Webinar

A pe ọ si webinar “Iṣakoso API pẹlu InterSystems API Management”, eyiti yoo waye ni Oṣu kọkanla ọjọ 21 ni 10:00 akoko Moscow (GMT+3).
InterSystems API Manager (IAM) jẹ ẹya tuntun ti InterSystems IRIS Data Platform ti o pese ibojuwo, iṣakoso ati iṣakoso ti ijabọ si/lati awọn API wẹẹbu laarin awọn amayederun IT. Ni webinar a yoo ṣe afihan awọn agbara bọtini ti InterSystems API Management:

  • API ijabọ monitoring irinṣẹ.
  • Awọn iṣakoso ijabọ API, pẹlu iṣakoso bandiwidi, diwọn nọmba awọn ipe API, mimu awọn atokọ ti idasilẹ ati awọn atokọ ti awọn adirẹsi IP sẹ, ati bẹbẹ lọ.
  • API aabo iṣeto ni irinṣẹ.
  • Èbúté Olùgbéejáde fún títẹ àwọn ìwé API alájọṣepọ̀ jáde.
  • Ojuami ẹyọkan ti iraye si API.

Webinar jẹ ipinnu fun awọn ayaworan ile, awọn olupilẹṣẹ ati awọn alabojuto eto.

Iforukọsilẹ wa ni ti beere!

orisun: www.habr.com

Fi ọrọìwòye kun