У меня есть контроллер Rest для регистрации пользователей (создание строки базы данных пользователя и профиля).Мне нужно защитить входные данные, чтобы не получать пустые {}
и неправильные атрибуты JSON.
Мой контроллер выглядит следующим образом:
@RestController
@RequestMapping("/users")
public class UserController {
private static final Logger LOG = LoggerFactory.getLogger(UserController.class);
private final UserService userService;
@Autowired
public UserController(UserService userService) {
this.userService = userService;
}
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.CREATED)
public void register(@RequestBody User user) {
try {
userService.persist(user);
} catch (TransactionSystemException e) {
throw new PersistenceException(e.getOriginalException());
}
}
}
Когда я отправляю, например, {}
или {"bad_data:420"}
Он падает где-то, где я хэширую пароль, что далеко от того места, где его нужно остановить.
Как это сделать, чтобы генерировать исключение где-то перед преобразованием в объект или перед сохранением?