Во-первых, ваше Java-приложение должно учитывать все необходимые операции, такие как CREATE, UPDATE, DELETE.Они - примерно - идентифицированы с помощью HTTP-методов PUT
, PATCH
& DELETE
соответственно.
Теперь представление DTO, которое ваш внешний интерфейс отправляет (JSON / XML / REST) в бэкэнд Java, может быть таким же вкаждый случай: СОЗДАТЬ, ОБНОВИТЬ И УДАЛИТЬ.Ваш бэкэнд должен реализовать вышеупомянутую функциональность для методов HTTP, перечисленных выше. DTO (возможно, с именем UserDTO), который вы отправляете из внешнего интерфейса в внутренний, может быть одинаковым во всех случаях.В этом DTO вы можете просто оставить все несвязанные (не связанные с операцией) поля неустановленными / пустыми.
Более подробно: в вашем бэкэнде должны быть методы, принимающие методы HTTP:
PUT
где DTO имеет все остальные необходимые поля, но Id PATCH
, где DTO имеет поле Id и все измененные поля DELETE
, где DTO имеет только Id
Я не знаю, как используемые вами структуры создают фактический POJO из отправляемого вами DTO.Но теперь у вас есть эти три метода, в которых вы действительно знаете, как обрабатывать входящий DTO, т.е. вы знаете, является ли он CREATE, UPDATE или DELETE.
Поэтому, если вам нужно создавать POJO самостоятельно, вам нужен конструктор для CREATE.Для обновления трудно сказать, может быть, вам нужно выбрать исходного пользователя и обновить его поле за полем, а для удаления на самом деле идентификатора должно быть достаточно для удаления пользователя.
, но что, если публикацияпотребуется набор совершенно разных атрибутов?(атрибуты, которые не включены в мой класс пользователя)?
Это похоже на HTTP POST
.Так что это не операция CREATE, UPDATE или DELETE, а что-то, что изменяет состояние - возможно, пользователя - на основе какой-то произвольной операции и данных.Конечно, для данных, не принадлежащих Пользователю, вам нужен другой DTO для хранения этих данных.