Как происходит преобразование между данными запроса и DTO и как реализовать сервисы? - PullRequest
0 голосов
/ 12 июня 2019

Я кодирую бэкэнд, используя Node.js и Express.Я прошел много исследований и узнал о

  • Маршрутах
  • Контроллерах
  • DTO
  • Сервисах
  • DAO
  • Модели (модели домена / бизнеса / базы данных)

Это общее понимание, которое у меня есть в настоящее время.enter image description here

Если я понял в настоящее время, то мне не хватает части, отмеченной красным "Преобразование данных запроса в DTO".

Я предполагаюэто делается путем простой передачи тела объекта запроса в конструктор DTO.Если да, то

  1. Как параметры запроса и параметры пути передаются из класса контроллера (где запрос поступает из промежуточного программного обеспечения маршрутов).

  2. Также,У меня много DTO (предположим, 2 на конечную точку, например: CreateUserRequest, UserResponse).Нужно ли мне тесно связывать каждый из этих DTO с соответствующими службами?

  3. Нужно ли группировать DTO и обрабатывать по одной службе, или будет одна служба для одного DTO?

  4. Отличаются ли службы для разных версий API?просто, сервисы версионированы как контроллеры?

  5. Если DTO ссылается на данные из нескольких моделей Домена, где и как это обрабатывать?Пример: GET / products Возвращает список продуктов с некоторой зарегистрированной пользовательской информацией, например, отметил ли пользователь ее в своем списке желаний или нет.Для получения этих данных DTO нам может понадобиться обратиться к двум таблицам / коллекциям.

  6. Может ли кто-нибудь указать хорошую реализацию, использующую все концепции?

PS: Проект большой по масштабу, и мне нужна слабо связанная архитектура.Кроме того, большая часть моего кода генерируется из Swagger Codegen (на клиенте и сервере).Итак, я ищу гибкий рабочий процесс.

...