У меня есть базовый класс DTO пользователя ...
public class User {
@JsonProperty("firstName")
private String firstName;
@JsonProperty("lastName")
private String lastName;
}
... и базовый обработчик запросов в классе @RestController:
@RequestMapping(path = "/users", method = RequestMethod.POST, consumes = { MediaType.APPLICATION_JSON_VALUE })
public UserMessage createUser(@RequestBody User user){
return userService.createUser(user);
}
Как я могу ограничить входящиеПолезные нагрузки JSON, которые содержат максимум только необходимые ключи?т.е. принять эту полезную нагрузку:
{
"firstName":"foo",
"lastName":"bar"
}
И сгенерировать специальное исключение для этого:
{
"firstName":"foo",
"lastName":"bar",
"type":"admin",
"asdf":"asdf"
}
Я читал о пользовательских конвертерах, ArgumentResolvers, и я считаю, что я мог бы просто добавить дополнительный параметр Mapв обработчике и проверьте перед вызовом службы, однако я хотел бы знать, "лучший" способ решения этой проблемы.