InterSystems API مینیجر (+ ویبینار) کا تعارف

ہم نے حال ہی میں InterSystems API Manager (IAM) کو جاری کیا، جو InterSystems IRIS ڈیٹا پلیٹ فارم کا ایک نیا جزو ہے جو پورے IT انفراسٹرکچر میں ویب API ٹریفک کی مرئیت، کنٹرول اور انتظام فراہم کرتا ہے۔

اس مضمون میں، میں آپ کو دکھاؤں گا کہ IAM کو کیسے ترتیب دیا جائے اور IAM کے ساتھ آپ کے لیے دستیاب بہت سی صلاحیتوں میں سے کچھ کا مظاہرہ کیا جائے۔ InterSystems API مینیجر آپ کو اجازت دیتا ہے:

  • API کی نگرانی کریں، سمجھیں کہ کون API استعمال کرتا ہے، کون سے API سب سے زیادہ مقبول ہیں، اور کن میں بہتری کی ضرورت ہے۔
  • کنٹرول کریں کہ کون API کا استعمال کرتا ہے اور API کے استعمال کو سادہ رسائی کی پابندیوں سے لے کر درخواست پر مبنی پابندیوں تک محدود کرتا ہے - آپ کے پاس حسب ضرورت کنٹرول ہے اور API کے استعمال کے پیٹرن کو تبدیل کرنے کا فوری جواب دے سکتے ہیں۔
  • OAuth2.0، LDAP یا Key Token Authentication جیسے مرکزی سیکیورٹی میکانزم کا استعمال کرتے ہوئے APIs کو محفوظ کریں۔
  • فریق ثالث کے ڈویلپرز کے لیے اسے آسان بنائیں اور انہیں ایک سرشار ڈویلپر پورٹل کھول کر ایک اعلیٰ API تجربہ فراہم کریں۔
  • API کو اسکیل کریں اور کم سے کم جوابی تاخیر کو یقینی بنائیں۔

API کا انتظام SOA یا مائیکرو سرویس فن تعمیر میں منتقلی کے لیے ضروری ہے، انفرادی (مائیکرو) سروسز کے درمیان انضمام کو آسان بنا کر، انہیں تمام بیرونی اور اندرونی صارفین کے لیے دستیاب کرانا۔ نتیجے کے طور پر، نئے APIs بنانا، برقرار رکھنا اور استعمال کرنا آسان ہو جاتا ہے۔

اگر آپ پہلے سے ہی 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-setup ونڈوز اور یونکس (اور میک) کے لیے۔ یہ اسکرپٹس آپ کو ماحولیاتی متغیرات کو درست طریقے سے سیٹ کرنے میں مدد کریں گی، جس سے IAM کنٹینر کو InterSystems IRIS کے ساتھ کنکشن قائم کرنے کی اجازت ملے گی۔ یہاں میک پر چلنے والی اسکرپٹ کی ایک مثال ہے۔

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

جیسا کہ آپ دیکھ سکتے ہیں، مکمل تصویر کا نام، آئی پی ایڈریس، انٹر سسٹمز 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 APIs کو ماڈیولز اور/یا کمانڈز میں تقسیم کرنے کے لیے ورک اسپیس کے تصور کی حمایت کرتا ہے۔ "ڈیفالٹ" ورک اسپیس پر جائیں جسے ہم اپنے تجربات کے لیے استعمال کریں گے۔

InterSystems API مینیجر (+ ویبینار) کا تعارف

اس ورک اسپیس کے لیے درخواستوں کی تعداد اب بھی صفر ہے، لیکن آپ کو بائیں جانب مینو میں بنیادی IAM تصورات کا اندازہ ہو جائے گا۔ پہلے دو عناصر: خدمات اور راستے سب سے اہم ہیں:

  • سروس وہ API ہے جس تک ہم صارفین کو رسائی فراہم کرنا چاہتے ہیں۔ اس طرح، InterSystems IRIS میں REST API ایک سروس ہے، جیسا کہ، مثال کے طور پر، Google API اگر آپ اسے استعمال کرنا چاہتے ہیں۔
  • روٹ فیصلہ کرتا ہے کہ کس سروس پر آنے والی درخواستوں کو آگے بڑھایا جائے۔ ہر روٹ کی شرائط کا ایک مخصوص سیٹ ہوتا ہے، اور اگر وہ پورا ہو جاتے ہیں، تو درخواست مناسب سروس کو بھیج دی جاتی ہے۔ مثال کے طور پر، روٹ IP، بھیجنے والے ڈومین، HTTP طریقوں، URI کے حصوں، یا ان مثالوں کے مجموعہ سے مماثل ہو سکتا ہے۔

سروس

آئیے درج ذیل اقدار کے ساتھ ایک InterSystems IRIS سروس بنائیں:

فیلڈ
ویلیو
تفصیل

نام
iris
سروس کا نام

میزبان
IP
انٹر سسٹمز IRIS سرور ہوسٹ یا ip

پورٹ
52773
انٹر سسٹمز 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 کے رویے کو تبدیل کرنے کا سب سے عام طریقہ ایک پلگ ان شامل کرنا ہے۔ پلگ ان انفرادی فعالیت کو الگ تھلگ کرتے ہیں اور عالمی سطح پر یا صرف انفرادی اداروں جیسے کہ صارف (صارفین کا گروپ)، سروس یا روٹ سے IAM سے منسلک ہو سکتے ہیں۔ ہم راستے میں شرح محدود کرنے والے پلگ ان کو شامل کرکے شروع کریں گے۔ پلگ ان اور روٹ کے درمیان تعلق قائم کرنے کے لیے، ہمیں روٹ کے ایک منفرد شناخت کنندہ (ID) کی ضرورت ہے۔

درخواستوں کی تعداد کو محدود کرنا

بائیں سائڈبار مینو میں پلگ ان پر کلک کریں۔ آپ اس اسکرین پر تمام فعال پلگ ان دیکھ سکتے ہیں، لیکن چونکہ یہ IAM سرور نیا ہے، اس لیے ابھی تک کوئی فعال پلگ ان نہیں ہیں۔ لہذا "نیا پلگ ان" پر کلک کرکے اگلے مرحلے پر جائیں۔

ہمیں جس پلگ ان کی ضرورت ہے وہ "ٹریفک کنٹرول" کے زمرے میں ہے اور اسے "ریٹ لیمٹنگ" کہا جاتا ہے۔ اسے منتخب کریں۔ بہت سی ترتیبات ہیں جو آپ یہاں سیٹ کر سکتے ہیں، لیکن ہمیں صرف دو فیلڈز کی پرواہ ہے:

فیلڈ
ویلیو
تفصیل

route_id
ID
راستے کی شناخت

config.minute
5
فی منٹ درخواستوں کی تعداد

بس۔ پلگ ان تشکیل شدہ اور فعال ہے۔ نوٹ کریں کہ ہم مختلف وقت کے وقفوں کا انتخاب کر سکتے ہیں، جیسے ایک منٹ، ایک گھنٹہ یا ایک دن۔ ترتیبات کو یکجا کیا جا سکتا ہے (مثال کے طور پر، فی گھنٹہ 1000 درخواستیں اور ایک ہی وقت میں 100 درخواستیں فی منٹ)۔ میں نے منٹوں کا انتخاب کیا کیونکہ یہ پلگ ان کی فعالیت کو چیک کرنا آسان بناتا ہے۔

اگر آپ پوسٹ مین میں دوبارہ وہی درخواست بھیجتے ہیں، تو آپ دیکھیں گے کہ جواب 2 اضافی ہیڈرز کے ساتھ واپس آ گیا ہے۔

  • XRateLimit-Limit-minute: 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-Rate Limit-Limit-hour
600

X-Rate Limit-باقی-گھنٹہ
595

X-RateLimit-Limit-minute
20

X-RateLimit-Remaining-minute
16

بلاشبہ، آپ کیا حاصل کرنا چاہتے ہیں اس پر منحصر ہے کہ استفسار کی حدود کو ترتیب دینے کے بہت سے مختلف طریقے ہیں۔

نتائج

میں یہاں ختم کروں گا، میرے خیال میں InterSystems API مینیجر کے بارے میں پہلے مضمون کے لیے کافی مواد موجود ہے۔ ہم نے 40 سے زیادہ پلگ ان میں سے صرف ایک استعمال کیا۔ اور بھی بہت سی دلچسپ چیزیں ہیں جو آپ IAM کے ساتھ کر سکتے ہیں:

  • اپنے تمام APIs کے لیے ایک مرکزی تصدیقی طریقہ کار شامل کریں۔
  • متعدد سروسز میں لوڈ بیلنسر کا استعمال کرتے ہوئے بوجھ کو پیمانہ کریں۔
  • مکمل اپ ڈیٹ سے پہلے آزمائشی سامعین کے لیے نئی فعالیت اور بگ کی اصلاحات شامل کریں۔
  • اندرونی اور بیرونی ڈویلپرز کو ایک سرشار ویب پورٹل فراہم کریں جو تمام APIs کو دستاویز کرتا ہے۔
  • کیشے جوابی وقت کو کم کرنے اور سسٹم بیک اینڈ پر بوجھ کو کم کرنے کی درخواست کرتا ہے۔

حوالہ جات

Webinar

ہم آپ کو ویبنار "API مینجمنٹ with InterSystems API مینجمنٹ" میں مدعو کرتے ہیں، جو 21 نومبر کو ماسکو وقت کے مطابق 10:00 بجے (GMT+3) ہوگا۔
InterSystems API مینیجر (IAM) InterSystems IRIS ڈیٹا پلیٹ فارم کا ایک نیا جزو ہے جو IT انفراسٹرکچر کے اندر ویب APIs تک/سے ٹریفک کی نگرانی، کنٹرول اور انتظام فراہم کرتا ہے۔ ویبینار میں ہم InterSystems API مینجمنٹ کی کلیدی صلاحیتوں کا مظاہرہ کریں گے:

  • API ٹریفک مانیٹرنگ ٹولز۔
  • API ٹریفک کنٹرول، بشمول بینڈوتھ کنٹرول، API کالز کی تعداد کو محدود کرنا، IP پتوں کی اجازت یافتہ اور نامنظور فہرستوں کی فہرستوں کو برقرار رکھنا، وغیرہ۔
  • API سیکورٹی کنفیگریشن ٹولز۔
  • انٹرایکٹو API دستاویزات شائع کرنے کے لیے ڈویلپر پورٹل۔
  • API تک رسائی کا واحد نقطہ۔

ویبینار آرکیٹیکٹس، ڈویلپرز اور سسٹم ایڈمنسٹریٹرز کے لیے ہے۔

رجسٹریشن درکار ہے۔!

ماخذ: www.habr.com

نیا تبصرہ شامل کریں