در این بخش از APIGateway شامل بخشهای زیر است :
مسیریابی (Routing)
سرویسی که در سازمانها وجود دارد روی آدرس IP مشخصی قراردارد مثلا میخواهد قیمت ارز را در اختیار مصرف کنندگان بگذارد و یا یک وب سرویس SOAP را عمومی کند.
توجه به تصویر زیر APIGateway جلوی این آدرس IP قرار میگیرد و این سرویس را روی آدرس جدید عمومی میکند. آدرس IP سمت سرور در سرویس گیرنده پنهان میشود یعنی در سازمان خود میتوانیم سرورها را جابه جا کنیم و یا تغییر بدهیم بدون اینکه مصرف کننده متوجه شود .
سرویس گیرنده آدرس را از APIGateway می گیرد و APIGateway وظیفهاش این است که این آدرس را به سمت سرور مربوطه مسیریابی کند. مهم ترین ویژگی هم همین است که درخواست را از مصرف کننده بگیرد و به تولیدکننده بفرستد و جواب را هم برگرداند.
احراز هویت و مجوز (Authentication and Authorization)
صدور مجوز به این دلیل است که ممکن است چندین سرویس مختلف داشته باشیم و هر مصرف کننده مجاز باشد از یکسری خدمات استفاده کند و محدودیت دسترسی مشخصی داشته باشد و استفاده از یکسری امکانات برایش مجاز نباشد.
احراز هویت برای این منظور است که اگر در سرویس دادههای حساس و امنیتی وجود داشته باشد باید کاربران هویت سنجی شوند و احراز هویت انجام دهند. مصرف کننده درخواست خود را به همراه یکسری پارامترهای امنیتی به APIGateway ارسال می کند و APIGateway این پارامترهای امنیتی را بررسی می کند اگر تایید بشود آن را به سمت سرور ارسال میکند اگر تایید نشود به مصرف کننده خطا میدهد(رمز عبور و یا نام کاربری اشتباه است ، توکن منقضی شده است و ...).
مدیریت امنیت (Security Management)
هنگامی که بخواهیم داده های یک سازمان را روی یک APIGateway بگذاریم باید بدانیم که چه امکاناتی . برای حفظ امنیت لازم است مانند محدودیت API و حفاظت DOS .
فرض کنید سازمانی که میخواهد سرویس هایش را در اختیار کاربران قرار دهد با اینکه نام کاربری و رمز عبور برای کاربرانش مشخص میکند ولی برای امنیت بیشتر بهتر است لیست سفید تعریف کند که چه کاربرانی مجوز درخواست و حق دسترسی به سرویس ها را دارند و یا لیست سیاه تعریف شود که مشخص شود چه کاربرانی مجوز درخواست و حق دسترسی به سرویس ها را ندارند.
در APIGateway باید یک سطحی از هوشمندی را داشته باشد که اگر درخواستها از یک حد نرمال بیشتر شدند و یا الگوی آنها تغییر کرد بتواند جلوی اجرای آنها را بگیرد و خطا متناسب بدهد که دادهها و سرویسها آسیب نیبنند.
مدیریت ترافیک (Traffic Management)
در APIGateway مانند یک اتوبان است که تعدادی درخواست را دریافت میکند و جوابش را برمیگرداند اگر این روند بدون قاعده و قانون باشد باعث آسیب زدن به سیستم میشود و ممکن است سیستم را از دسترس خارج کند پس باید کنترل ترافیک روی درخواستها داشته باشیم. تا جلوی مشکلات احتمالی را بگیرد. APIGateway از دو مکانیزم برای کنترل ترافیک استفاده می کند:
در مراحل بعدی برای هر مشتری و نوع رفتار یک طرح تعریف میکنیم و یک سطح بندی از مشتریان را مشخص میکنیم که هم بتوانیم منابع را مدیریت کنیم تا به منابع آسیب نرسد و هم مصرف کننده استفاده لازم را ببرد. APIGateway جلوی درخواستها میایستد و بررسی میکند که درخواستها قوانین را نقض میکنند یا خیر؟ اگر نقض نکند به سرور وصل میشود و اگر نقض کند با خطا مواجه میشود.
تغییر و ارکستراسیون (Transaction & Orchestration)
در این بخش به شر عملکرد تغییر و اراکستراسیون در APIGateawy میپردازیم.
در بخش تغییر باید بتوان یک پروتکل ارتباطی را تغییر و ایجاد کرد که برای همه قابل درک و استفاده باشد مثلا همه ارتباطاتها را در قالب پروتکل REST تعریف شوند که انتقالها را از طریق فایل JSON ممکن کند و سرویسهایی که قدیمی هستند از پروتکل SOAP استفاده میکنند و نیاز به یک رابط برای تبدیل این پروتکلها به هم نیاز است و بتواند درخواست REST را به SOAP و پاسخ SOAP را به REST تبدیل کند. ESP نیز اینکار را داخل یک سازمان انجام می هد ولی APIGateway به صورت کلی بدون محدودیت تغییر پروتکلها را انجام میدهد و ارتباط بین سازمانها را ایجاد میکند. تکنولوژیها و پروتکلهای مختلف زیادی وجود دارد و برای کاهش پیچیدگیها از تبدیل پروتکلها به یکدیگر از APIGateway استفاده میشود.
در تبدیل فرمت فرض کنید درخواستها به همراه یکسری پارامترها به APIGateway ارسال میشوند و برای سادگی و پنهان کردن پیچیدگیهای سمت سرور نوع و تعریف پارامترها را تغییر دهیم یعنی اگر تعریف پارامترها در سمت سرور و سرویس گیرنده متفاوت باشد APIGateway این تبدیلها را انجام میدهد.
در اکستراسیون ممکن است در یک سازمان چند API کوچک وجود داشته باشد که هرکدام هم یک کار کوچک انجام میدهد ولی نیازمندی این است که چند API را با یک فرآیند و یا جریانی از API ها را ترکیب کنیم و یک سرویس جدیدی بسازیم اصطلاحا به اینها سرویسهای کامپوزیت میگویند و در نهایت یک سرویس درشت دانه تر تولید کنیم.
مثال در اداره پست یک اپراتور پست نیاز به یک API دارد که مشخصات مرسوله پستی را به عنوان ورودی API دریافت و قیمت ارسال مرسوله را محاسبه کند. محاسبه قیمت تابع پارامترهای مختلفی مثل وزن مرسوله، مسافت ارسالی و ... است و تعدادی میکروسرویس وجود دارد که بصورت میانی محاسبات را انجام میدهند. و چند میکروسرویس وجود دارد که از ترکیب آنها به یک سرویس بزرگتر به نام قیمت گذاری میرسیم و خاصیت APIGateway این است بصورت اعجایل میتواند قیمتها را محاسبه کند و یا تغییر دهد و ممکن است با توجه به شرایط بازار در بعضی مواقع کم یا زیاد شود.
در APIGateway بدون نیاز به توسعه دهنده API ها را ترکیب میکند و جریانی از API ها را برای کاربردهای مختلف ایجاد میکند و در نهایت به یک خروجی مطلوب میرسد.
اگر نیاز به مشاوره در خصوص API های سازمان خودتان دارید به وب سایت ما سر بزنید.
ما را در اینستاگرام دنبال کنید.