API Gateway چیست؟
یک ابزار مدیریت API است که بین مشتری و مجموعه ای از خدمات backend قرار دارد.
به عنوان یک پروکسی معکوس عمل می کند تا تمام تماس های رابط برنامه نویسی برنامه (API) را بپذیرد ، خدمات مختلف مورد نیاز برای تحقق آنها را جمع کند و نتیجه مناسب را برگرداند.
چگونه کار میکند؟
تمام تماس های API را از مشتری می گیرد ، سپس آنها را با مسیریابی درخواست ، ترکیب و ترجمه پروتکل به میکروسرویس مناسب هدایت می کند. به طور معمول با استناد به چندین سرویس دهنده و جمع آوری نتایج ، برای تعیین بهترین مسیر ، یک درخواست را انجام می دهد. این می تواند بین پروتکل های وب و پروتکل های وب دوستانه که در داخل مورد استفاده قرار می گیرند ، ترجمه شود.
تفاوت بین API Gateway و Gateway API:
API gateway یک ابزار مدیریت ترافیک است اما Gateway API یک تکامل مفهومی از API Ingressاست که توسط جامعه Kubernetes در دست توسعه است.
API Gateway چرا؟
چون بساری از اهداف را حل میکند از جمله:
1. Authentication
2. Different protocol
3. Load-balancing
4. Request dispatching
5. Response transformation
6. Circuit breaker
مزایا:
· میکروسرویس می تواند روی منطق تجارت تمرکز کند.
· مشتریان می توانند تمام داده ها را در یک ضربه دریافت کنند.
· احراز هویت ، ورود به سیستم و نظارت را می توان توسط دروازه APIانجام داد.
· می تواند مطابق نیاز مشتری ، نتایج متناسب به دست آورد.
· می تواند شکست جزئی را تحمل کند.
معایب:
· این می تواند به دلیل اتفاقات زیاد در دروازه API باعث تخریب عملکرد شود.
· با این کار ، سرویس Discovery باید اجرا شود.
· یک نقطه شکست.
· Overhead از الگو.
· افزودن hop شبکه اضافی در تماس.
· پیچیدگی سیستم را افزایش می دهد.
منابع:
· https://www.redhat.com/en/topics/api/what-does-an-api-gateway-do
· https://www.techtarget.com/whatis/definition/API-gateway-application-programming-interface-gateway
· https://thenewstack.io/api-gateways-age-microservices/
#تکلیف درس معماری نرم افزار در دانشگاه شهید بهشتی