Подойдет ли BFF для Frontend для написания универсального API

«Подойдет ли BFF для Frontend для написания универсального API» — вопрос из категории Архитектура, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

BFF (Backend for Frontend) отлично подходит для создания специализированных API под конкретный фронтенд. Он адаптирует бэкенд под нужды клиента, упрощая работу с данными.

Плюсы:

  • Оптимизация запросов (агрегация, трансформация данных)
  • Снижение нагрузки на клиент
  • Гибкость (можно менять API без изменений в основном бэкенде)

Когда не подходит:

  • Если нужен универсальный API для разных клиентов (мобильное приложение + веб)
  • При высоких требованиях к переиспользуемости

Пример:

// BFF эндпоинт для страницы профиля
app.get('/profile', async (req, res) => {
  const [user, orders] = await Promise.all([
    fetchUser(req.userId),
    fetchOrders(req.userId)
  ]);
  res.json({ user, orders }); // Один запрос вместо нескольких
});

Лучше использовать BFF для конкретного интерфейса, а универсальный API оставить для общего доступа.