Я разрабатываю спокойный веб-сервис с использованием Spring Framework.У меня есть несколько вопросов о том, как правильно использовать DTO в моем проекте.
Прежде всего, я видел много примеров кода по использованию DTO, и всегда есть однозначное сопоставление с сущностями.Для User
сущности у нас есть UserDto
, для Country
у нас есть CountryDto
и т. Д. Я думаю, что это совсем не гибко.Для каждого сервиса мне нужны два DTO для ввода и вывода.это нормально?
Если я определю два DTO для каждой службы, могу ли я назвать их суффиксами запроса и ответа?Например, для службы createUser
у меня есть два объекта DTO с именами CreateUserRequest
и CreateUserResponse
.
Некоторые сервисы не имеют выходов (только код состояния) или входов (просто Id в URL).Должен ли я определить пустой DTO для них или нет?Если я не определяю DTO в этих сценариях, это немного сбивает с толку, потому что иногда вы определяете два DTO для обслуживания, а иногда только один.
Должен ли я также отображать переменные пути, например /users/{id}
, в объекты DTO?например вместо:
@GetMapping("/users/{id}")
public ResponseEntity getUser(@PathVariable(value = "id") Long id)
сделать что-то вроде:
@GetMapping("/users/{id}")
public ResponseEntity getUser(@PathVariable(value = "id") GetUserRequest request)