Использование @RequestBody с объектом-оболочкой

#spring

Вопрос:

Я использую entity - repository - service - controller архитектуру. В контроллере я хотел бы получить объект, не представленный слоем сущности. Я провел некоторое исследование и нашел два решения.

  1. Используйте карту<Строка, объект>
  2. Используйте класс-оболочку.

Мои вопросы таковы:

  1. Во втором сценарии, куда я должен поместить класс-оболочку? Это новая сущность или у меня должна быть отдельная папка для классов-оболочек?
  2. В чем разница между наличием DTO и вторым подходом?

Ответ №1:

Ans 1. Это вообще не Сущность, это просто оболочка ответа DTO. Я бы рекомендовал иметь 2 пакета *dto и *entity. Классы, доступные из API, должны находиться внутри *dto, а классы, представляющие сущности, должны находиться в *сущности. Вы можете дополнительно разделить *dto на *dto/запрос и *dto/ответ. Ans 2. Я не вижу никакой разницы. Всегда рекомендуется заключать любую коллекцию в ответ DTO, чтобы иметь место для метаданных, таких как разбиение на страницы.