Что такое API Gateway? Для чего он нужен?
Подробный ответ
Роль API Gateway
Вместо того чтобы мобильное или web-приложение напрямую знало адреса всех микросервисов, клиент обращается к API Gateway. Gateway определяет, в какой сервис отправить запрос, применяет общие политики и возвращает ответ клиенту.
Client
|
API Gateway
|
+---------+-----------+----------+
| | | |
Users Orders Catalog PaymentsТипичные обязанности
маршрутизация запросов к нужному сервису;
TLS termination и управление сертификатами;
аутентификация, проверка токенов и общая авторизация;
rate limiting, WAF и защита от злоупотреблений;
request ID, логирование, tracing и метрики;
кэширование и compression;
агрегация ответов нескольких сервисов для конкретного клиента.
Gateway и BFF
Backend for Frontend, или BFF, — разновидность gateway-слоя, ориентированная на конкретный тип клиента. Например, web-клиент и мобильное приложение могут иметь разные BFF, которые отдают удобные именно им агрегированные ответы.
Риски
API Gateway может стать bottleneck или single point of failure, если не развернуть его в нескольких репликах и не мониторить. Также в нём не стоит размещать сложную бизнес-логику: иначе он превращается в распределённый монолит и усложняет независимость сервисов.
Как ответить на собеседовании
API Gateway — единая точка входа перед сервисами. Я использую его для routing, TLS, authentication, rate limiting, observability и иногда aggregation для клиента. Бизнес-логику оставляю в доменных сервисах, а gateway масштабируют и мониторят как критичный компонент.
Оцени свой прогресс