Кто-нибудь делал слой bff внутри api, а не отдельным сервисом?
Есть монолитный api и frontend. Концепция такая, что апи отдаёт данные для фронта в максимально подготовленном виде.
Из-за этого слой приложения занимается получением всяких дополнительных данных, которые нужны только на отображение, типа дат ближайших отпусков сотрудников.
Хочу сделать дополнительный слой, который будет обогащать данные слоя приложения перед отдачей из апи. Очень напоминает BFF, но BFF в виде отдельного сервиса сейчас сделать нельзя.
Хорошая ли идея выделять слой BFF внутри API?
Кто-нибудь так делал?
Как жить с тем, что фронт просит много и разного, а сборка ДТОох для него начинает занимать приличный кусок UseCase?
У нас на проекте есть сервис - прослойка для БД. По факту - он возвращает все значения из БД. Нам этого не надо было.
Мы организовали типа BFF на нем: каждый сервис создает ручку специально для себя и получает значения, которые нужны только для него.
С одной стороны - больше поддерживать, но с другой стороны это решает множество проблем
А ходили в этот сервис фронты или другие бэкенд сервисы?
Пока вижу только один основной минус модуля BFF внутри монолита - придётся всё перемапливать. Т.е. модуль BFF содержит ДТО, которые отдаются на фронт, как он этого хочет, а слой приложения отдаёт данные в своём формате. И каждый вызов, даже если он 1 к 1 транслируется в вызов слоя приложения придётся перемапливать. Зато получаем возможность оставить логику склейки сущностей из разны доменов в BFF, а слой приложения пилить на модули.