InterSystems API менежерийг танилцуулж байна (+ вэбинар)

Бид саяхан InterSystems IRIS мэдээллийн платформын шинэ бүрэлдэхүүн хэсэг болох InterSystems API Manager (IAM)-ийг гаргасан бөгөөд энэ нь мэдээллийн технологийн дэд бүтцээр дамжуулан вэб API траффикийн харагдах байдал, хяналт, удирдлагыг хангадаг.

Энэ нийтлэлд би танд IAM-г хэрхэн тохируулахыг зааж, IAM-тай ашиглах боломжтой олон боломжуудын заримыг харуулах болно. InterSystems API менежер танд дараах боломжийг олгоно:

  • API-г хянаж, хэн API ашигладаг, аль API нь хамгийн алдартай, аль нь сайжруулах шаардлагатайг ойлгоорой.
  • API-г хэн ашиглаж байгааг хянаж, API хэрэглээг энгийн хандалтын хязгаарлалтаас хүсэлтэд суурилсан хязгаарлалт хүртэл хязгаарлаарай - та захиалгат хяналттай бөгөөд API-ийн хэрэглээний хэв маягийг өөрчлөхөд хурдан хариу өгөх боломжтой.
  • OAuth2.0, LDAP эсвэл Key Token Authentication зэрэг төвлөрсөн аюулгүй байдлын механизмуудыг ашиглан API-уудыг хамгаална.
  • Гуравдагч талын хөгжүүлэгчдэд илүү хялбар болгож, тусгайлан зориулсан хөгжүүлэгч портал нээх замаар API-ийн дээд туршлагаар хангана уу.
  • API-г томруулж, хамгийн бага хариултын хоцролтыг хангах.

API удирдлага нь SOA буюу микро үйлчилгээний архитектурт шилжихэд зайлшгүй шаардлагатай бөгөөд бие даасан (микро) үйлчилгээнүүдийн хоорондын интеграцийг хялбарчилж, гадаад болон дотоод бүх хэрэглэгчдэд ашиглах боломжтой болгодог. Үүний үр дүнд шинэ API-г үүсгэх, хадгалах, хэрэглэхэд хялбар болсон.

Хэрэв та InterSystems IRIS ашиглаж байгаа бол IAM сонголтыг лиценздээ нэмж болно. IAM сонголт нь InterSystems IRIS хэрэглэгчдэд үнэ төлбөргүй байдаг ч та IAM-г ашиглаж эхлэхийн тулд InterSystems-ээс шинэ лицензийн түлхүүр хүсэх ёстой.

Хэрэв та InterSystems IRIS-г хараахан ашиглаагүй байгаа бөгөөд InterSystems API Manager-ийг туршиж үзэхээр төлөвлөж байгаа бол InterSystems-тэй холбогдоно уу.

Эхлэх ба суурилуулах

InterSystems-ийн хэрэглэгчид IAM түгээлтийг вэбсайтаас татаж авах боломжтой WRC "Програм хангамжийн түгээлт" хэсгийг Docker контейнер болгон ажиллуул. Системийн хамгийн бага шаардлага:

Эхлээд та Docker дүрсийг татаж авах хэрэгтэй (Чухал! WRC-тэй архив нь Docker дүрс биш, та үүнийг задлах хэрэгтэй, дотор нь Docker дүрс байгаа):

docker load -i iam_image.tar

Энэ тушаал нь IAM дүрсийг дараа нь таны серверт ашиглах боломжтой болгоно. IAM нь тусдаа контейнер хэлбэрээр ажилладаг тул та InterSystems IRIS-ээс бие даан масштаблах боломжтой. IAM-г ажиллуулахын тулд лицензийг татаж авахын тулд InterSystems IRIS-д хандах шаардлагатай.

InterSystems IRIS-ийг тохируулах:

  • Вэб програмыг идэвхжүүлнэ үү /api/IAM
  • Хэрэглэгчийг идэвхжүүлэх IAM
  • Хэрэглэгчийн нууц үгийг өөрчлөх IAM

Одоо IAM контейнерийг эхлүүлцгээе. Архиваас та скриптүүдийг олох болно iam-setup Windows болон Unix (болон Mac)-д зориулсан. Эдгээр скриптүүд нь орчны хувьсагчдыг зөв тохируулахад тусалж, IAM контейнерт InterSystems IRIS-тэй холбогдох боломжийг олгоно. 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

Таны харж байгаагаар зургийн бүтэн нэр, IP хаяг, InterSystems IRIS порт болон IAM хэрэглэгчийн нууц үг нь эхлэхэд л хангалттай.

Скрипт ажиллуулахын оронд та орчны хувьсагчдыг гараар тохируулах боломжтой:

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

Ажиллуулах

Одоо дараах тушаалыг ажиллуулж IAM-г ажиллуулцгаая.

docker-compose up -d

Энэ тушаал нь IAM контейнеруудыг зохион байгуулж, бүх зүйл зөв ажиллаж байгаа эсэхийг баталгаажуулдаг. Контейнерийн төлөвийг дараах тушаалыг ашиглан шалгана.

docker ps

Хөтөч дээрээ админ интерфейсийг нээнэ үү localhost:8002.

InterSystems API менежерийг танилцуулж байна (+ вэбинар)

Энэ нь цоо шинэ зангилаа учраас одоохондоо хоосон байна. Үүнийг өөрчилье. IAM нь API-г модуль болон/эсвэл команд болгон хуваах ажлын талбарын тухай ойлголтыг дэмждэг. Бидний туршилтанд ашиглах "өгөгдмөл" ажлын талбар руу очно уу.

InterSystems API менежерийг танилцуулж байна (+ вэбинар)

Энэ ажлын талбарт зориулсан хүсэлтийн тоо тэг хэвээр байгаа боловч та зүүн талд байгаа цэснээс IAM-ийн үндсэн ойлголтуудын талаар ойлголттой болно. Эхний хоёр элемент: Үйлчилгээ ба Маршрут нь хамгийн чухал нь:

  • Үйлчилгээ нь хэрэглэгчдэд хандах боломжийг олгохыг хүсч буй API юм. Тиймээс InterSystems IRIS дахь REST API нь үйлчилгээ юм, жишээлбэл, хэрэв та үүнийг ашиглахыг хүсвэл Google API.
  • Маршрут нь ямар үйлчилгээнд ирж буй хүсэлтийг дамжуулахыг шийддэг. Маршрут бүр тодорхой нөхцөлтэй бөгөөд хэрэв тэдгээр нь хангагдсан бол хүсэлтийг холбогдох үйлчилгээнд илгээдэг. Жишээлбэл, Маршрут нь IP, илгээгчийн домэйн, HTTP аргууд, URI-ийн хэсгүүд эсвэл эдгээр жишээнүүдийн хослолтой таарч болно.

үйлчилгээ

Дараах утгуудтай InterSystems IRIS үйлчилгээг үүсгэцгээе:

талбар
үнэ цэнэ
Тайлбар

нэр
цахилдаг
Үйлчилгээний нэр

хост
IP
InterSystems IRIS серверийн хост эсвэл ip

порт
52773
InterSystems IRIS серверийн вэб порт

зам
/api/atelier
Үндсэн зам

протокол
HTTP
Протокол

Үлдсэн утгуудыг анхдагчаар үлдээнэ үү. товчийг дарна уу Create үүсгэсэн үйлчилгээний ID-г бичнэ үү.

Чиглэл

Одоо маршрут үүсгэцгээе:

талбар
үнэ цэнэ
Тайлбар

зам
/api/atelier
Үндсэн зам

протокол
HTTP
Протокол

service.id
гарын авлага 3
Үйлчилгээ (өмнөх алхамын ID)

Үлдсэн утгуудыг анхдагчаар үлдээнэ үү. товчийг дарна уу Create үүсгэсэн маршрутын ID-г бичнэ үү. Анхдагчаар IAM нь 8000 порт дээр ирж буй хүсэлтийг сонсдог. Одоо хүсэлтийг илгээсэн http://localhost:8000 ба -аас эхэлнэ /api/atelier InterSystems IRIS руу дахин чиглүүлэв.

Тест хийх

REST клиент дээр хүсэлт үүсгэж үзье (би ашиглаж байна Шуудан зөөгч).

InterSystems API менежерийг танилцуулж байна (+ вэбинар)

-руу GET хүсэлт илгээцгээе http://localhost:8000/api/atelier/ (битгий мартаарай / төгсгөлд) мөн InterSystems IRIS-ээс хариу хүлээн авна уу. Хүсэлт бүр хэмжигдэхүүнүүдийг цуглуулдаг IAM-аар дамждаг:

  • HTTP төлөвийн код.
  • Саатал.
  • Хяналт (хэрэв тохируулсан бол).

Би дахин хэд хэдэн хүсэлт гаргасан (үүнд /api/atelier/est/ гэх мэт байхгүй төгсгөлийн цэгүүдэд хоёр хүсэлт орсон) үр дүн нь хяналтын самбар дээр шууд харагдана:

InterSystems API менежерийг танилцуулж байна (+ вэбинар)

Плагинуудтай ажиллах

Одоо бид Маршрутыг тохируулсан тул API-ээ удирдах боломжтой. Бид үйлчилгээгээ нөхөх функцуудыг нэмж болно.

API-ийн үйлдлийг өөрчлөх хамгийн түгээмэл арга бол залгаас нэмэх явдал юм. Plugins нь бие даасан функцийг тусгаарлаж, IAM-тай дэлхийн хэмжээнд эсвэл зөвхөн Хэрэглэгч (хэрэглэгчдийн бүлэг), Үйлчилгээ эсвэл Маршрут зэрэг бие даасан байгууллагуудтай холбогдож болно. Бид маршрутад Rate Limiting залгаасыг нэмж эхлүүлнэ. Залгаас болон маршрутын хооронд холболт үүсгэхийн тулд бидэнд маршрутын өвөрмөц танигч (ID) хэрэгтэй.

Хүсэлтийн тоог хязгаарлах

Зүүн талын цэсний Plugins дээр дарна уу. Та энэ дэлгэц дээр бүх идэвхтэй залгаасуудыг харж болно, гэхдээ энэ IAM сервер шинэ учраас идэвхтэй залгаасууд хараахан алга байна. Тиймээс "Шинэ залгаас" дээр дарж дараагийн алхам руу шилжинэ үү.

Бидэнд хэрэгтэй залгаас нь "Хөдөлгөөний хяналт" ангилалд багтах бөгөөд "Хязгаарлалт" гэж нэрлэгддэг. Үүнийг сонго. Энд та хэд хэдэн тохиргоог хийх боломжтой, гэхдээ бид зөвхөн хоёр талбарт анхаарал хандуулдаг:

талбар
үнэ цэнэ
Тайлбар

замын_id
ID
Маршрутын ID

config.minute
5
Минут дахь хүсэлтийн тоо

Тэгээд л болоо. Plugin тохируулагдсан бөгөөд идэвхтэй байна. Бид минут, цаг, өдөр гэх мэт өөр өөр цагийн интервалыг сонгож болно гэдгийг анхаарна уу. Тохиргоог нэгтгэж болно (жишээлбэл, цагт 1000 хүсэлт, минутанд 100 хүсэлт). Энэ нь залгаасын ажиллагааг шалгахад хялбар болгодог учраас би минутыг сонгосон.

Хэрэв та ижил хүсэлтийг Postman-д дахин илгээвэл хариу нь 2 нэмэлт толгойтой буцаж ирэхийг харах болно:

  • XRateLimit-Limit-минут: 5
  • XRateLimit-Үлдсэн минут: 4

Энэ нь үйлчлүүлэгчид минут тутамд 5 хүртэлх хүсэлт гаргах боломжтой бөгөөд одоогийн цагийн интервалд 4 хүсэлт гаргах боломжтой гэдгийг хэлдэг.

InterSystems API менежерийг танилцуулж байна (+ вэбинар)

Хэрэв та ижил хүсэлтийг дахин дахин хийвэл, эцэст нь таны боломжит квот дуусч оронд нь дараах хариу бүхий 429 HTTP статусын кодыг хүлээн авна:

InterSystems API менежерийг танилцуулж байна (+ вэбинар)

Түр хүлээнэ үү, та дахин хүсэлт гаргах боломжтой болно.

Энэ нь танд дараахь боломжийг олгодог тохиромжтой механизм юм.

  • Арын хэсгийг ачааллын өсөлтөөс хамгаална.
  • Үйлчлүүлэгчид хэдэн хүсэлт гаргах боломжтойг хэлээрэй.
  • API-г мөнгөжүүлэх.

Та өөр өөр хугацааны интервалд утгыг тохируулж, тодорхой хугацааны туршид API урсгалыг жигдрүүлж болно. Та тодорхой Маршрут дээр цагт 600 хүсэлтийг зөвшөөрнө гэж бодъё. Нэг минутад дунджаар 10 хүсэлт ирдэг. Гэвч үйлчлүүлэгч бүх 600 хүсэлтийг цагийн эхний минутанд биелүүлэхэд юу ч саад болохгүй. Магадгүй энэ нь танд хэрэгтэй зүйл юм. Та нэг цагийн дотор илүү жигд ачаалал авахыг хүсч болно. Талбайн утгыг тохируулах замаар config.minute 20-ийн утга нь таны хэрэглэгчид минутанд 20, цагт 600-аас илүүгүй хүсэлт гаргахыг баталгаажуулдаг. Энэ нь минутанд 10 хүсэлтийн бүрэн дундаж урсгалтай харьцуулахад нэг минутын завсарлагад бага зэрэг нэмэгдэх боломжийг олгодог боловч хэрэглэгчид нэг минутын турш цагийн квотыг ашиглах боломжгүй. Одоо тэдэнд бүх хүсэлтээ ашиглахын тулд дор хаяж 30 минут шаардлагатай болно. Үйлчлүүлэгчид заасан хугацааны интервал бүрт нэмэлт гарчиг хүлээн авах болно, жишээлбэл:

HTTP толгой
үнэ цэнэ

X-RateLimit-Limit-цаг
600

X-RateLimit-Үлдсэн цаг
595

X-RateLimit-Limit-минут
20

X-RateLimit-Үлдсэн минут
16

Мэдээжийн хэрэг, хүссэн зүйлээсээ хамааран асуулгын хязгаарыг тохируулах олон янзын арга байдаг.

үр дүн нь

Би энд дуусгая, InterSystems API Manager-ийн талаархи эхний нийтлэлд хангалттай материал байгаа гэж бодож байна. Бид 40 гаруй залгаасуудын зөвхөн нэгийг нь ашигласан. Та IAM-тай хийж болох өөр олон сонирхолтой зүйл бий:

  • Өөрийн бүх API-д баталгаажуулалтын төв механизмыг нэмнэ үү.
  • Олон үйлчилгээнүүдийн ачааллыг тэнцвэржүүлэгч ашиглан ачааллыг хэмжээрэй.
  • Бүрэн шинэчлэлт хийхээс өмнө туршилтын үзэгчдэд шинэ функц болон алдааны засваруудыг нэмнэ үү.
  • Дотоод болон гадаад хөгжүүлэгчдийг бүх API-г баримтжуулсан тусгай вэб порталаар хангах.
  • Хариулах хугацааг багасгаж, системийн арын хэсгийн ачааллыг багасгахын тулд кэш хүсэлт.

лавлагаа

Webinar

21-р сарын 10-ний өдөр Москвагийн цагаар 00:3 (GMT+XNUMX) цагт болох "InterSystems API Management бүхий API менежмент" вебинарт таныг урьж байна.
InterSystems API Manager (IAM) нь InterSystems IRIS өгөгдлийн платформын шинэ бүрэлдэхүүн хэсэг бөгөөд мэдээллийн технологийн дэд бүтцийн дотор вэб API-аас орж ирэх урсгалыг хянах, хянах, удирдах боломжийг олгодог. Вебинар дээр бид InterSystems API менежментийн үндсэн чадавхийг харуулах болно.

  • API замын хөдөлгөөний хяналтын хэрэгслүүд.
  • API замын хөдөлгөөний хяналт, үүнд зурвасын өргөнийг хянах, API дуудлагын тоог хязгаарлах, IP хаягийн зөвшөөрөгдсөн болон татгалзсан жагсаалтын жагсаалтыг хадгалах гэх мэт.
  • API аюулгүй байдлын тохиргооны хэрэгслүүд.
  • Интерактив API баримт бичгийг нийтлэх хөгжүүлэгч портал.
  • API руу нэвтрэх нэг цэг.

Энэхүү вебинар нь архитекторууд, хөгжүүлэгчид болон системийн администраторуудад зориулагдсан болно.

Бүртгүүлэх шаардлагатай!

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх