В настоящее время я создаю REST-API для проекта и читаю статью о статье о лучших практиках. Многие, похоже, против DTO и просто просто демонстрируют модель домена, в то время как другие, похоже, думают, что DTO (или модели пользователей или все, что вы хотите назвать) - это плохая практика. Лично я думал, что эта статья имеет большой смысл.
Однако я также понимаю недостатки DTO со всем дополнительным кодом сопоставления, моделями доменов, которые могут быть на 100% идентичны их DTO-аналогу и так далее.
Наш API в основном создан таким образом, что другие клиенты могут потреблять данные, однако, если мы это сделаем правильно, мы также хотели бы использовать его для нашего собственного веб-интерфейса, если это возможно.
Дело в том, что мы не хотим показывать все данные домена другим пользователям. Большая часть данных будет иметь смысл только в нашем собственном веб-приложении. Кроме того, мы можем не захотеть раскрывать все данные об объекте во всех сценариях, особенно отношениях с другими объектами и т.д. Например, если мы выставляем список конкретного объекта, мы не обязательно хотим разоблачить всю иерархию объектов; так что дети объекта не будут обнаружены, но могут быть обнаружены через ссылки (ненависти).
Как мне решить эту проблему? Я думал о том, как использовать миксоны Jackson на наших моделях домена, чтобы контролировать, какие данные будут отображаться с учетом разных сценариев. Или мы просто должны использовать DTO полностью - даже учитывая его недостатки и противоречия?