你可以使用 @RequestBody 注解来让请求正文通过 HttpMessageConverter 读取并反序列化为一个对象。下面的例子使用了一个 @RequestBody
参数:
@PostMapping("/accounts")
public void handle(@RequestBody Account account) {
// ...
}
你可以使用 MVC 配置的 Message Converters 选项来配置或定制消息转换。
你可以将 @RequestBody
与 javax.validation.Valid
或 Spring 的 @Validated 注解结合使用,这两者都会导致标准 bean 验证的应用。默认情况下,验证错误会导致 MethodArgumentNotValidException,它被转化为 400(BAD_REQUEST)响应。另外,你可以通过 Errors 或 BindingResult 参数在控制器中本地处理验证错误,如下面的例子所示:
@PostMapping("/accounts")
public void handle(@Valid @RequestBody Account account, BindingResult result) {
// ...
}