Лучшая практика различать guish DTO для просмотра и для действия - PullRequest
1 голос
/ 19 июня 2020

можете ли вы сказать мне, как лучше всего различать guish DTO, которые служат для передачи данных для внешнего интерфейса (например, показать профиль пользователя) и DTO, которые служат для некоторых действий (например, создать пользователя, обновить пользователя , ...)

Что вы думаете о таких именах:

CreateUserDto, UpdateUserDto для действия и UserDto, UserBaseDto для отображения данных на FE? Я также думал об использовании суффикса Command вроде CreateUserCommand вместо суффикса DTO.

1 Ответ

0 голосов
/ 19 июня 2020

Никакого различия - в обоих случаях речь идет об объекте data transfer . Это то, что отправлено туда и обратно. Более того, если ваш пользовательский интерфейс создает пользователя, он может использовать одну и ту же структуру (следовательно, тот же DTO) для GETing и POSTing - что, на мой взгляд, является широко распространенным сценарием.

Нет общих соглашений, и поэтому ваш вопрос сводится к «как назвать класс или пакет в моем конкретном случае», который открывает множество возможностей. Например, CreateUserDto, который вы предложили, или UserCreationRequestDto, или просто помещение этих классов в разные пакеты.

Команда - это шаблон проектирования GoF, который не имеет ничего общего с DTO, поэтому может привести к путанице.

...