Включать ли Id в Data Transfer Object (DTO)?
Коллеги, я разрабатываю сервис в котором будут операции создания и обновления объектов.
- Для создания объекта, клиент не передает Id сущности, т.к. он назначается в БД.
- Для обновления же объекта, клиент передает Id.
Для цели взаимодействия с клиентом разрабатываю DTO.
Какая хорошая практика в этом случае?
- Сделать DTO без Id. Получать Id от клиента отдельным параметром в операции обновления.
- Сделать DTO с Id. В операции создания контролировать, что клиент не передал Id в json?
- Сделать два DTO: для создания и для обновления.
Мне больше близок вариант 2, т.к. Id все таки это часть сущности, и выдавать ошибку при наличии лишнего поля, это просто проверка на соответствие спецификации.
Ответы (1 шт):
Автор решения: Vladimir
→ Ссылка
Передавать id в DTO стандартная практика, в обычных случаях он часто пригождается, при обновлении объекта, удобно сразу конвертировать дто в объект, соответственно там будет идшник и можно будет сразу обновить существующей объект