Я хотел бы задать этот вопрос в контексте Microservices. Вот цитата из оригинального вопроса.
В настоящее время я создаю REST-API для проекта и читаю статью о передовой практике. Многие, кажется, против DTO и просто просто выставить модель домена, в то время как другие, похоже, думаю, DTO (или пользовательские модели или что-то, что вы хотите назвать) плохие практика. Лично я думал, что эта статья имеет большой смысл.
Однако я также понимаю недостатки DTO со всеми дополнительными код отображения, модели домена, которые могут быть на 100% идентичны их DTO-аналог и т.д.
Теперь, Мой вопрос
Я больше ориентирован на использование одного объекта через все слои моего приложения (другими словами, просто выведите объект домена, а не создавайте DTO и вручную копируйте по каждому полю). И различия в моем контракте и коде могут быть решены с помощью аннотаций Джексона, таких как @JsonIgnore
или @JsonProperty(access = Access.WRITE_ONLY)
или @JsonView
и т.д.). Или, если есть одно или два поля, которым требуется преобразование, которое невозможно сделать с помощью аннотации Джексона, тогда я напишу пользовательскую логику, чтобы справиться именно с этим (поверьте мне, я не сталкивался с этим сценарием даже не один раз в свои 5+ лет долгое путешествие в службах отдыха)
Я хотел бы знать, не хватает ли я каких-либо реальных плохих последствий для того, чтобы не копировать домен в DTO