InterSystems API කළමනාකරු (+ webinar) හඳුන්වා දීම

තොරතුරු තාක්ෂණ යටිතල ව්‍යුහය හරහා වෙබ් API ගමනාගමනය දෘශ්‍යතාව, පාලනය සහ කළමනාකරණය සපයන InterSystems IRIS දත්ත වේදිකාවේ නව අංගයක් වන InterSystems API Manager (IAM) අපි මෑතකදී නිකුත් කළෙමු.

මෙම ලිපියෙන්, IAM පිහිටුවීම සහ IAM සමඟ ඔබට ලබා ගත හැකි බොහෝ හැකියාවන් ප්‍රදර්ශනය කරන්නේ කෙසේදැයි මම ඔබට පෙන්වන්නම්. InterSystems API කළමනාකරු ඔබට ඉඩ දෙන්නේ:

  • API නිරීක්ෂණය කරන්න, API භාවිතා කරන්නේ කවුරුන්ද, කුමන API වඩාත් ජනප්‍රියද, සහ වැඩිදියුණු කළ යුතු ඒවා මොනවාද යන්න තේරුම් ගන්න.
  • API භාවිතා කරන්නේ කවුරුන්ද යන්න පාලනය කරන්න සහ සරල ප්‍රවේශ සීමා කිරීම් සිට ඉල්ලීම් මත පදනම් වූ සීමා කිරීම් දක්වා API භාවිතය සීමා කරන්න - ඔබට අභිරුචි පාලනයක් ඇති අතර API පරිභෝජන රටා වෙනස් කිරීමට ඉක්මනින් ප්‍රතිචාර දැක්විය හැක.
  • OAuth2.0, LDAP හෝ Key Token Authentication වැනි මධ්‍යගත ආරක්‍ෂක යාන්ත්‍රණයන් භාවිතා කරමින් ආරක්‍ෂිත API.
  • තෙවන පාර්ශවීය සංවර්ධකයින් සඳහා එය පහසු කර, කැප වූ සංවර්ධක ද්වාරයක් විවෘත කිරීමෙන් ඔවුන්ට උසස් API අත්දැකීමක් ලබා දෙන්න.
  • API පරිමාණය කර අවම ප්‍රතිචාර ප්‍රමාදයක් සහතික කරන්න.

SOA හෝ ක්ෂුද්‍ර සේවා ගෘහ නිර්මාණ ශිල්පය වෙත සංක්‍රමණය වීම සඳහා API කළමනාකරණය අත්‍යවශ්‍ය වේ, තනි (ක්ෂුද්‍ර) සේවා අතර ඒකාබද්ධ කිරීම සරල කිරීම, ඒවා සියලුම බාහිර සහ අභ්‍යන්තර පාරිභෝගිකයින්ට ලබා ගත හැකිය. එහි ප්‍රතිඵලයක් වශයෙන්, නව API නිර්මාණය කිරීමට, නඩත්තු කිරීමට සහ පරිභෝජනයට පහසු වේ.

ඔබ දැනටමත් InterSystems IRIS භාවිතා කරන්නේ නම්, ඔබට ඔබේ බලපත්‍රයට IAM විකල්පය එක් කළ හැක. IAM විකල්පය InterSystems IRIS පාරිභෝගිකයින් සඳහා නොමිලේ, නමුත් IAM භාවිතා කිරීම ආරම්භ කිරීමට ඔබ InterSystems වෙතින් නව බලපත්‍ර යතුරක් ඉල්ලා සිටිය යුතුය.

ඔබ තවමත් InterSystems IRIS භාවිතා නොකරන්නේ නම් සහ InterSystems API කළමනාකරු උත්සාහ කිරීමට අදහස් කරන්නේ නම්, කරුණාකර InterSystems අමතන්න.

ආරම්භ කිරීම සහ ස්ථාපනය කිරීම

InterSystems පාරිභෝගිකයින්ට වෙබ් අඩවියෙන් IAM බෙදාහැරීම බාගත කළ හැකිය WRC "මෘදුකාංග බෙදා හැරීම" කොටස සහ ඩොකර් කන්ටේනරයක් ලෙස ධාවනය කරන්න. අවම පද්ධති අවශ්යතා:

මුලදී, ඔබ ඩොකර් රූපය බාගත කළ යුතුය (වැදගත්! WRC සහිත සංරක්ෂිතය ඩොකර් රූපයක් නොවේ, ඔබ එය ඉවත් කළ යුතුය, ඇතුළත ඩොකර් රූපයක් ඇත):

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 port සහ 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 කළමනාකරු (+ webinar) හඳුන්වා දීම

එය සම්පූර්ණයෙන්ම නව නෝඩයක් බැවින් දැනට එය හිස්ය. අපි ඒක වෙනස් කරමු. API මොඩියුල සහ/හෝ විධාන වලට බෙදීම සඳහා IAM වැඩබිම් සංකල්පයට සහය දක්වයි. අපගේ අත්හදා බැලීම් සඳහා අප භාවිතා කරන "පෙරනිමි" වැඩබිම වෙත යන්න.

InterSystems API කළමනාකරු (+ webinar) හඳුන්වා දීම

මෙම වැඩබිම සඳහා ඉල්ලීම් ගණන තවමත් ශුන්‍ය වේ, නමුත් වම් පස ඇති මෙනුවේ මූලික IAM සංකල්ප පිළිබඳ අදහසක් ඔබට ලැබෙනු ඇත. පළමු අංග දෙක: සේවා සහ මාර්ග වඩාත් වැදගත් වේ:

  • සේවාව යනු අපට පාරිභෝගිකයින්ට ප්‍රවේශය ලබා දීමට අවශ්‍ය API වේ. මේ අනුව, InterSystems IRIS හි REST API සේවාවකි, උදාහරණයක් ලෙස, ඔබට එය භාවිතා කිරීමට අවශ්‍ය නම් Google API.
  • පැමිණෙන ඉල්ලීම් ඉදිරිපත් කළ යුත්තේ කුමන සේවාවටද යන්න මාර්ගය තීරණය කරයි. සෑම මාර්ගයකටම නිශ්චිත කොන්දේසි මාලාවක් ඇති අතර, ඒවා සපුරා ඇත්නම්, ඉල්ලීම අදාළ සේවාව වෙත යවනු ලැබේ. උදාහරණයක් ලෙස, Route එකකට IP, sender domain, HTTP ක්‍රම, URI එකක කොටස්, හෝ මෙම උදාහරණ වල එකතුවකට ගැලපේ.

සේවා

පහත අගයන් සමඟ අන්තර් පද්ධති IRIS සේවාවක් නිර්මාණය කරමු:

ක්ෂේත්රයේ
අගය
විස්තර

නාමය
පැල්ලමක්
සේවා නාමය

සත්කාරකය
IP
InterSystems IRIS සේවාදායක සත්කාරක හෝ ip

වරාය
52773
InterSystems IRIS සේවාදායක වෙබ් තොට

මාර්ගය
/ api / atelier
මූල මාර්ගය

ප්රොටොකෝලය
http
ප්රොටෝකෝලය

ඉතිරි අගයන් පෙරනිමියෙන් තබන්න. බොත්තම ක්ලික් කරන්න Create සහ සාදන ලද සේවාවේ හැඳුනුම්පත ලියන්න.

මාර්ගය

දැන් අපි මාර්ගයක් නිර්මාණය කරමු:

ක්ෂේත්රයේ
අගය
විස්තර

මාර්ගය
/ api / atelier
මූල මාර්ගය

ප්රොටොකෝලය
http
ප්රොටෝකෝලය

service.id
3 සිට මාර්ගෝපදේශය
සේවාව (පෙර පියවරෙන් හැඳුනුම්පත)

ඉතිරි අගයන් පෙරනිමියෙන් තබන්න. බොත්තම ක්ලික් කරන්න Create සහ සාදන ලද මාර්ගයේ හැඳුනුම්පත ලියන්න. පෙරනිමියෙන්, IAM වරාය 8000 මත එන ඉල්ලීම්වලට සවන් දෙයි. දැන් ඉල්ලීම් යවන්නේ http://localhost:8000 සහ ආරම්භ කිරීම /api/atelier InterSystems IRIS වෙත හරවා යවනු ලැබේ.

පරීක්ෂා කිරීම

අපි REST සේවාලාභියෙකු තුළ ඉල්ලීමක් සෑදීමට උත්සාහ කරමු (මම භාවිතා කරමි තැපැල්කරු).

InterSystems API කළමනාකරු (+ webinar) හඳුන්වා දීම

වෙත GET ඉල්ලීමක් යවමු http://localhost:8000/api/atelier/ (අමතක කරන්න එපා / අවසානයේ) සහ InterSystems IRIS වෙතින් ප්‍රතිචාරයක් ලබා ගන්න. සෑම ඉල්ලීමක්ම ප්‍රමිතික එකතු කරන IAM හරහා යයි:

  • HTTP තත්ව කේතය.
  • ප්‍රමාදය.
  • අධීක්ෂණය (වින්‍යාස කර ඇත්නම්).

මම තවත් ඉල්ලීම් කිහිපයක් සිදු කළෙමි (/api/atelier/est/ වැනි නොපවතින අවසන් ලක්ෂ්‍ය සඳහා ඉල්ලීම් දෙකක් ඇතුළුව), ප්‍රතිඵල උපකරණ පුවරුවේ ක්ෂණිකව දිස්වේ:

InterSystems API කළමනාකරු (+ webinar) හඳුන්වා දීම

ප්ලගින සමඟ වැඩ කිරීම

දැන් අපට මාර්ගයක් වින්‍යාස කර ඇති බැවින්, අපට අපගේ API කළමනාකරණය කළ හැකිය. අපගේ සේවාවට අනුපූරක වන විශේෂාංග එකතු කළ හැක.

API හි හැසිරීම වෙනස් කිරීමට වඩාත් පොදු ක්රමය වන්නේ ප්ලගිනයක් එකතු කිරීමයි. Plugins තනි පුද්ගල ක්‍රියාකාරීත්වය හුදකලා කරන අතර IAM වෙත සම්බන්ධ කළ හැක්කේ ගෝලීය වශයෙන් හෝ පරිශීලකයෙකු (පරිශීලකයින් කණ්ඩායමක්), සේවාවක් හෝ මාර්ගයක් වැනි තනි ආයතනවලට පමණි. අපි Rate Limiting ප්ලගිනය මාර්ගයට එක් කිරීමෙන් ආරම්භ කරමු. ප්ලගිනය සහ මාර්ගය අතර සම්බන්ධතාවයක් ඇති කර ගැනීමට, අපට මාර්ගයේ අනන්‍ය හඳුනාගැනීමක් (ID) අවශ්‍ය වේ.

ඉල්ලීම් ගණන සීමා කිරීම

වම් පැති තීරු මෙනුවේ Plugins ක්ලික් කරන්න. ඔබට මෙම තිරයේ සියලුම ක්‍රියාකාරී ප්ලගීන දැකිය හැක, නමුත් මෙම IAM සේවාදායකය අලුත් බැවින්, තවමත් සක්‍රිය ප්ලගීන නොමැත. එබැවින් "නව ප්ලගිනය" ක්ලික් කිරීමෙන් ඊළඟ පියවරට යන්න.

අපට අවශ්ය ප්ලගිනය "රථවාහන පාලන" කාණ්ඩයේ වන අතර එය "අනුපාත සීමා කිරීම" ලෙස හැඳින්වේ. එය තෝරන්න. ඔබට මෙහි සැකසිය හැකි සැකසුම් කිහිපයක් ඇත, නමුත් අපි ක්ෂේත්‍ර දෙකක් ගැන පමණක් සැලකිලිමත් වෙමු:

ක්ෂේත්රයේ
අගය
විස්තර

route_id
ID
මාර්ග හැඳුනුම්පත

config.minute
5
විනාඩියකට ඉල්ලීම් ගණන

එච්චරයි. ප්ලගිනය වින්‍යාස කර ක්‍රියාකාරී වේ. අපට විනාඩියක්, පැයක් හෝ දවසක් වැනි විවිධ කාල පරාසයන් තෝරා ගත හැකි බව සලකන්න. සැකසුම් ඒකාබද්ධ කළ හැකිය (උදාහරණයක් ලෙස, පැයකට ඉල්ලීම් 1000 ක් සහ ඒ සමඟම විනාඩියකට ඉල්ලීම් 100 ක්). මම මිනිත්තු තෝරා ගත්තේ එය ප්ලගිනයේ ක්‍රියාකාරීත්වය පරීක්ෂා කිරීම පහසු කරන බැවිනි.

ඔබ නැවතත් එම ඉල්ලීමම Postman වෙත යවන්නේ නම්, අමතර ශීර්ෂ 2ක් සමඟ ප්‍රතිචාරය ආපසු ලැබෙන බව ඔබට පෙනෙනු ඇත:

  • XRateLimit-සීමාව-විනාඩි: 5
  • XRateLimit-ඉතිරි-මිනිත්තු: 4

මෙය සේවාදායකයාට පවසන්නේ එය විනාඩියකට ඉල්ලීම් 5ක් දක්වා කළ හැකි බවත් වත්මන් කාල පරාසය තුළ තවත් ඉල්ලීම් 4ක් කළ හැකි බවත්ය.

InterSystems API කළමනාකරු (+ webinar) හඳුන්වා දීම

ඔබ එකම ඉල්ලීම නැවත නැවත සිදු කරන්නේ නම්, අවසානයේ ඔබට ලබා ගත හැකි කෝටාව අවසන් වන අතර ඒ වෙනුවට පහත ප්‍රතිචාර අංශය සමඟ 429 හි HTTP තත්ව කේතයක් ලැබෙනු ඇත:

InterSystems API කළමනාකරු (+ webinar) හඳුන්වා දීම

මිනිත්තුවක් රැඳී සිටින්න, ඔබට නැවත ඉල්ලීම් ඉදිරිපත් කිරීමට හැකි වනු ඇත.

මෙය ඔබට ඉඩ සලසන පහසු යාන්ත්‍රණයකි:

  • බර වැඩිවීම් වලින් පසු අන්තය ආරක්ෂා කරන්න.
  • ගනුදෙනුකරුවන්ට කොපමණ ඉල්ලීම් කළ හැකිදැයි කියන්න.
  • API මුදල් උපයන්න.

ඔබට විවිධ කාල අන්තරයන් සඳහා අගයන් සැකසිය හැකි අතර එමඟින් යම් කාල සීමාවක් තුළ API ගමනාගමනය සුමට කළ හැකිය. අපි හිතමු ඔබ යම් මාර්ගයක පැයකට ඉල්ලීම් 600කට ඉඩ දෙනවා කියලා. සාමාන්‍යයෙන් විනාඩියකට ඉල්ලීම් 10ක් එනවා. නමුත් පැයේ පළමු මිනිත්තුවේදී සියලුම ඉල්ලීම් 600 සම්පූර්ණ කිරීමට සේවාදායකයාට කිසිවක් බාධාවක් නොවේ. සමහරවිට ඔබට අවශ්ය වන්නේ මෙයයි. ඔබට පැයක කාලය තුළ ඊටත් වඩා බරක් ලබා ගැනීමට අවශ්‍ය විය හැකිය. ක්ෂේත්‍ර අගය සැකසීමෙන් config.minute 20ක අගයක් ඔබේ පරිශීලකයන් විනාඩියකට ඉල්ලීම් 20කට වඩා නොඉක්මවන බව සහ පැයකට ඉල්ලීම් 600කට වඩා නො කරන බව සහතික කරයි. මෙය මිනිත්තුවකට ඉල්ලීම් 10ක සම්පූර්ණ සාමාන්‍ය ප්‍රවාහයකට සාපේක්ෂව මිනිත්තුවක පරතරයක් මත කුඩා කරල් සඳහා ඉඩ සලසයි, නමුත් පරිශීලකයින්ට විනාඩියකට පැයක කෝටාව භාවිතා කළ නොහැක. දැන් ඔවුන්ට ඔවුන්ගේ සියලු ඉල්ලීම් භාවිතා කිරීමට අවම වශයෙන් විනාඩි 30 ක් අවශ්‍ය වේ. එක් එක් නිශ්චිත කාල පරතරය සඳහා සේවාදායකයින්ට අමතර ශීර්ෂයන් ලැබෙනු ඇත, උදාහරණයක් ලෙස:

HTTP ශීර්ෂකය
අගය

X-RateLimit-Limit-hour
600

X-RateLimit-ඉතිරි-පැය
595

X-RateLimit-Limit-minute
20

X-RateLimit-ඉතිරි-මිනිත්තු
16

ඇත්ත වශයෙන්ම, ඔබට ලබා ගැනීමට අවශ්‍ය දේ මත විමසුම් සීමාවන් වින්‍යාස කිරීමට විවිධ ක්‍රම තිබේ.

සොයා ගැනීම්

මම මෙතැනින් අවසන් කරන්නම්, InterSystems API කළමනාකරු පිළිබඳ පළමු ලිපිය සඳහා ප්‍රමාණවත් ද්‍රව්‍ය ඇතැයි මම සිතමි. අපි භාවිත කළේ ප්ලගීන 40කට වැඩි සංඛ්‍යාවකින් එකක් පමණි. IAM සමඟ ඔබට කළ හැකි තවත් බොහෝ රසවත් දේවල් තිබේ:

  • ඔබගේ සියලුම API සඳහා මධ්‍යම සත්‍යාපන යාන්ත්‍රණයක් එක් කරන්න.
  • බහුවිධ සේවා හරහා ලෝඩ් බැලන්සර් භාවිතයෙන් බර පරිමාණය කරන්න.
  • සම්පූර්ණ යාවත්කාලීන කිරීමට පෙර පරීක්ෂණ ප්‍රේක්ෂකයින් වෙත නව ක්‍රියාකාරීත්වය සහ දෝෂ නිවැරදි කිරීම් එක් කරන්න.
  • සියලුම API ලේඛනගත කිරීමට කැපවූ වෙබ් ද්වාරයක් සමඟ අභ්‍යන්තර සහ බාහිර සංවර්ධකයින්ට ලබා දෙන්න.
  • ප්‍රතිචාර දැක්වීමේ කාලය අඩු කිරීමට සහ පද්ධතියේ පසුපෙළ මත පැටවීම අඩු කිරීමට හැඹිලිය ඉල්ලීම් කරයි.

යොමු

වෙබ් බ්රව්සරය

නොවැම්බර් 21 වන දින මොස්කව් වේලාවෙන් 10:00 ට (GMT +3) පැවැත්වෙන “අන්තර් පද්ධති API කළමනාකරණය සමඟ API කළමනාකරණය” වෙබ්නාර් වෙත අපි ඔබට ආරාධනා කරන්නෙමු.
InterSystems API Manager (IAM) යනු තොරතුරු තාක්ෂණ යටිතල ව්‍යුහය තුළ වෙබ් API වෙත/වෙබ් සිට ගමනාගමනය අධීක්ෂණය, පාලනය සහ කළමනාකරණය සපයන InterSystems IRIS දත්ත වේදිකාවේ නව අංගයකි. Webinar හි අපි InterSystems API කළමනාකරණයේ ප්‍රධාන හැකියාවන් ප්‍රදර්ශනය කරන්නෙමු:

  • API ගමනාගමන අධීක්ෂණ මෙවලම්.
  • කලාප පළල පාලනය ඇතුළුව API ගමනාගමන පාලනයන්, API ඇමතුම් ගණන සීමා කිරීම, අවසර ලත් සහ ප්‍රතික්ෂේප කළ IP ලිපින ලැයිස්තු පවත්වාගෙන යාම යනාදිය.
  • API ආරක්ෂක වින්‍යාස මෙවලම්.
  • අන්තර්ක්‍රියාකාරී API ලේඛන ප්‍රකාශනය සඳහා සංවර්ධක ද්වාරය.
  • API වෙත ප්‍රවේශ වීමේ තනි ලක්ෂ්‍යය.

webinar ගෘහ නිර්මාණ ශිල්පීන්, සංවර්ධකයින් සහ පද්ධති පරිපාලකයින් සඳහා අදහස් කෙරේ.

ලියාපදිංචිය අවශ්ය වේ!

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න