API gateway and BFF

Давайте вначале обозначим базовые концепции и посмотрим на разницу.

API gateway - сервис скрывающий за собой ряд внутренних сервисов:

BFF (Backend-for-Frontend) - это API gateway сервис, но для определенного типа клиента:

В итоге:

  • API gateway - решает проблемы сразу нескольких клиентов
  • BFF - решает проблемы только одного клиента

Проблемы которые решает API gateway и BFF:

  • Изолирует клиентов от того, как приложение разделено на микросервисы.
  • Изолирует клиентов от проблемы определения местоположения экземпляров службы.
  • Предоставляет оптимальный API для каждого клиента
  • Уменьшает количество запросов/обратных передач. Например, шлюз API позволяет клиентам извлекать данные из нескольких служб за один цикл. Меньшее количество запросов также означает меньшие накладные расходы и улучшает взаимодействие с пользователем. Шлюз API необходим для мобильных приложений.
  • Упрощает клиент, перемещая логику вызова нескольких служб с клиента на шлюз API.
  • Переводит из «стандартного» общедоступного веб-протокола API в любые протоколы, используемые внутри компании.

Недостатки API gateway:

  • Повышенная сложность — шлюз API — это еще одна движущаяся часть, которую необходимо разрабатывать, развертывать и управлять
  • Увеличение времени отклика из-за дополнительного сетевого перехода через API-шлюз, однако для большинства приложений стоимость дополнительного кругового пути незначительна.

Важно: по возможности должен использовать асинхронные запросы.

Источник: 1 - 2


11.09.2021 07:08