Структура данных на фронт-енде и бек-енде отличаются. Кто должен переделывать?

При разработке модуля системы произошло несоблюдение контракта.
Фронт-енд работает с сущностями без вложенных подсущностей, но бек-енд принимает их только в таком формате. На фронте данные построены так, чтобы было удобно рендерить, а на бек-енде - для запросов в БД.

export interface someEntity {
  prop: string;
  someMoreProp: string;
  someArr: string[]
}

export interface someBackendEntity {
  prop: string;
  someBackArr: [{
    someMoreProp: string;
    someArr: []
}]
}


Должны ли данные приходить на фронт в нужном формате или их необходимо map-ать перед каждым обращением к серверу (на самом деле вложенный foreach - что выглядит как-то слишком мудрено для простого запроса)?
  • Вопрос задан
  • 931 просмотр
Пригласить эксперта
Ответы на вопрос 3
@abmanimenja
На фронте данные построены так, чтобы было удобно рендерить, а на бек-енде - для запросов в БД.

А между ними - API - в котором данные должны быть в виде удобном взаимопонимания.
Как договоритесь, как удобнее.

Что там во фронтенде, что там в бэкенде - это их внутренние дела.
Единственная точка взаимодействия - API.
Вот этот формат и оговаривается.
Ответ написан
@EvgeniiR
https://github.com/EvgeniiR
Выкиньте бэкендеров и воспользуйтесь каким-нибудь serverless решением если они просто прослойка перед базой и не умеют даже данные в формат отличный от таблички для write модели конвертить
Удобство это по сути главное требование к API, а проблемы Бэкенда должны оставаться на бэкенде.

P.s. а ещё лучше прикинуть costs/benefits вместо непродуктивных споров
Ответ написан
OnYourLips
@OnYourLips
Это нормально, что структура данных разная.
API создаются бекендом и являются частью бекенда, они являются способом работать с системой клиентам (фронтендам, мобильным приложения, другим бекендам).

Клиенты же просто работают с API. Под всех клиентов не подстроиться, да и не нужно. Максимум - выслушать пожелания.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
20 мая 2019, в 17:23
3000 руб./за проект
20 мая 2019, в 15:59
300 руб./за проект
20 мая 2019, в 15:24
1300 руб./в час