tgoop.com/prog_way_blog/131
Create:
Last Update:
Last Update:
Что такое DTO
Часто бывает так, что в базе данных хранятся пользователи нашего сайта. Для них в базе данных много полей и связей. А для отображения на фронтенде нам нужны всего лишь, например, его имя, уровень и аватар. Нам что теперь, отправить всю базу данных на фронт? Сейчас разберёмся как решить эту проблему.
Самым правильным способом тут является, как мне кажется, генерация DTO.
DTO — Data Transfer Object — объект, который деструктуризирует базу данных и создаёт новый объект на её основе для передачи данных.
Для простоты примера представим, что в качестве базы данных используется MongoDB, чтобы данные о пользователе хранились в JSON'е. Далее рассмотрим такой псевдокод:
// класс-конструктор DTO. Обычно отдельным файлом
// в папке dto или dtos
class UserDTO {
constructor(user) {
this.name = user.name
this.level = user.stats.level
this.avatar = user.media.avatar
}
}
// псевдозапрос к базе данных
const user = database.getUser()
// генерация DTO
const userDto = new UserDTO(user)
// отправляем ответ
res.status(200).json(userDto)
Код максимально простой, зато сколько пользы. Теперь эту DTO можно задокументировать, а лучше создать отдельный тип в TypeScript'e и развернуть его на весь проект. При изменении типа, линтер сразу покажет ошибки.
1. В ответе только нужные данные
2. Ответ от сервера быстрее приходит и меньше весит
Максимально полезный концепт, всем советую. И на этом у меня всё. Спасибо за прочтение, это важно для меня.
#useful #theory #data
BY progway — программирование, IT

Share with your friend now:
tgoop.com/prog_way_blog/131