PROG_WAY_BLOG Telegram 131
​​Что такое DTO

Часто бывает так, что в базе данных хранятся пользователи нашего сайта. Для них в базе данных много полей и связей. А для отображения на фронтенде нам нужны всего лишь, например, его имя, уровень и аватар. Нам что теперь, отправить всю базу данных на фронт? Сейчас разберёмся как решить эту проблему.

Самым правильным способом тут является, как мне кажется, генерация DTO.

DTOData 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



tgoop.com/prog_way_blog/131
Create:
Last Update:

​​Что такое DTO

Часто бывает так, что в базе данных хранятся пользователи нашего сайта. Для них в базе данных много полей и связей. А для отображения на фронтенде нам нужны всего лишь, например, его имя, уровень и аватар. Нам что теперь, отправить всю базу данных на фронт? Сейчас разберёмся как решить эту проблему.

Самым правильным способом тут является, как мне кажется, генерация DTO.

DTOData 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

View MORE
Open in Telegram


Telegram News

Date: |

While some crypto traders move toward screaming as a coping mechanism, many mental health experts have argued that “scream therapy” is pseudoscience. Scientific research or no, it obviously feels good. But a Telegram statement also said: "Any requests related to political censorship or limiting human rights such as the rights to free speech or assembly are not and will not be considered." The creator of the channel becomes its administrator by default. If you need help managing your channel, you can add more administrators from your subscriber base. You can provide each admin with limited or full rights to manage the channel. For example, you can allow an administrator to publish and edit content while withholding the right to add new subscribers. Channel login must contain 5-32 characters The court said the defendant had also incited people to commit public nuisance, with messages calling on them to take part in rallies and demonstrations including at Hong Kong International Airport, to block roads and to paralyse the public transportation system. Various forms of protest promoted on the messaging platform included general strikes, lunchtime protests and silent sit-ins.
from us


Telegram progway — программирование, IT
FROM American