PRO

Что такое API Gateway? Для чего он нужен?

API Gateway — единая точка входа для клиентов перед внутренними сервисами. Он маршрутизирует запросы, может выполнять аутентификацию, rate limiting, TLS termination, логирование, кэширование и агрегацию ответов, но не должен превращаться в место для сложной бизнес-логики.
Подробный ответ

Роль 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 масштабируют и мониторят как критичный компонент.

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге