Одна из проблем — волшебное преобразование параметров тела ответа в объект Java (сущность) с аннотацией @RequestBody.
См. следующий пример
Код: Выделить всё
@PostMapping
public User create(@RequestBody User user) {}
@PutMapping
public User update(@RequestBody User user) {}
Пользователь Объект может иметь множество полей и ассоциаций, например
Код: Выделить всё
{
"name": "John Doe",
"age": 33,
"email": "john@example.com",
"addresses": [{
"street": "XYZ Main St",
"city": "Test City",
"zip": "12345"
}]
}
В то же время мне может понадобиться еще один контроллер для администраторов, который сможет устанавливать/изменять все поля и ассоциации пользователя, показанные выше.
Как могу ли я контролировать, что поступает в тело запроса и как отображается запись пользователя инициализировано?
Я знаю, что могу использовать такие вещи, как UserDto:
Код: Выделить всё
public class UserDTO {
private String name;
private Integer age;
}
// Controller
@PostMapping
public User create(@RequestBody UserDto userDto) {}
Код: Выделить всё
UserИли мне следует определить правила проверки, а также поле наборы в DTO?
И следует ли мне создавать DTO для всех возможных конечных точек и бизнес-кейсов, например
Код: Выделить всё
public class UserDTO {
private String name;
private Integer age;
}
public class AdminUserDTO {
private String name;
private Integer age;
private String email;
private List addresses;
}
Пожалуйста, помогите!
Подробнее здесь: https://stackoverflow.com/questions/793 ... dating-a-r
Мобильная версия