@RequestBody
您可以使用 @RequestBody 注解让请求体通过 HttpMessageConverter
读取并反序列化为 Object。以下示例使用了一个 @RequestBody 参数:
-
Java
@PostMapping("/accounts")
public void handle(@RequestBody Account account) {
// ...
}
您可以将 @RequestBody 与 jakarta.validation.Valid 结合使用,或使用 Infra @Validated 注解,
这两者都会导致应用标准 Bean 验证。默认情况下,验证错误会导致 MethodArgumentNotValidException,
该异常会转换为 400 (BAD_REQUEST) 响应。或者,您可以通过 Errors 或 BindingResult 参数在控制器内本地处理验证错误,
如下例所示:
-
Java
@PostMapping("/accounts")
public void handle(@Valid @RequestBody Account account, Errors errors) {
// ...
}
如果因为其他参数具有 @Constraint 注解而应用方法验证,则会引发 HandlerMethodValidationException。
有关更多详细信息,请参阅 验证 部分。