Я думаю, важно знать, что такое DTO
.
DTO(Data Transfer Object)
- это концепция Java(J2EE)
дизайна.
Он выглядит как обычный Java Bean
объект, которыйбыл создан для передачи объекта данных через несколько слоев (таких как controller
, service
, database
) в нашем бэкэнде, особенно в Distributed Systems
.
Без DTO
Модель
Мы отправляем множество запросов для запроса некоторых данных, которые мы хотим, которые могут быть дублированы.
Application -> WebService -> Database
- Он потребляет большую часть полосы пропускания из-за некоторых дублированных запросов.
- Небезопасно, он возвращает весь объект из
database
, который содержит некоторые атрибуты, которые не должны отображаться.Кстати, мы должны вручную добавить некоторый дополнительный код, чтобы ограничить его, что отстой.
С DTO
Модель
Это помогает нам обрабатывать наш объект данных.
В руководстве NestJS
, DTO
действует как HTTP Request
тело.
На мой взгляд, DTO
содержит:
- некоторые атрибуты, которые мы будем использовать, но не в
Database
.
и DTO
масках:
- некоторые атрибуты, которые мы не хотим раскрывать.
Для использования с class-validator
, DTO
также может помочь нам элегантно проверить данные.
Иногда это выглядит так же с объектом interface
.
Я думаю, DTO
имеет значение, когда наша коллекция баз данных огромна и сложна.