@RequestBody
annotation을 사용하면 요청 본문을 읽고 HttpMessageConverter
를 통해 Object
로 역직렬화할 수 있습니다. 다음 예에서는 @RequestBody
인수를 사용합니다.
@PostMapping("/accounts")
public void handle(@RequestBody Account account) {
// ...
}
MVC Config의 메시지 Converters 옵션을 사용하여 메시지 변환을 구성하거나 사용자 정의할 수 있습니다.
jakarta.validation.Valid
또는 Spring의 @Validated
annotation과 함께 @RequestBody
를 사용할 수 있으며 두 가지 모두 표준 Bean 유효성 검사가 적용됩니다. 기본적으로 유효성 검사 오류로 인해 MethodArgumentNotValidException
이 발생하고 이는 400(BAD_REQUEST) 응답으로 전환됩니다. 또는 다음 예제와 같이 Errors
또는 BindingResult
인수를 통해 컨트롤러 내에서 로컬로 유효성 검사 오류를 처리할 수 있습니다.
@PostMapping("/accounts")
public void handle(@Valid @RequestBody Account account, Errors errors) {
// ...
}
다른 매개변수에 @Constraint
annotation이 있어서 메서드 유효성 검사가 적용되는 경우 대신 HandlerMethodValidationException
이 발생합니다. 자세한 내용은 유효성 검사 섹션을 참조하세요.