상세 컨텐츠

본문 제목

Spring MVC @RequestBody

프레임워크/Spring Boot

by 최승호 2022. 5. 26. 12:00

본문

https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc-ann-requestbody

 

Web on Servlet Stack

Spring Web MVC is the original web framework built on the Servlet API and has been included in the Spring Framework from the very beginning. The formal name, “Spring Web MVC,” comes from the name of its source module (spring-webmvc), but it is more com

docs.spring.io

@RequestBody 어노테이션은

요청 바디를 읽고 HttpMessageConverter를 통해 Object를 역직렬화 할 수 있다.

form 데이터나 쿼리스트링이 아닌 JSON 등을 통해서 들어온 요청을 처리한다.

기본적으로 validation error는 MethodArgumentNotVaildException을 발생시키고 400(BAD_REQUEST)를 응답한다. @RequestBody를 @Validated 어노테이션과 함께 사용하면 이 예외를 컨트롤러에서 처리할 수 있다.

Member.java

@Data
public class Member {
    @Size(min = 3)
    private String id;
    @NotEmpty
    private String name;
}

RequestBodyController.java

@Slf4j
@RequestMapping("/requestBody")
@RestController
public class RequestBodyController {
    
    @GetMapping("/handle")
    public void handle(@Valid @RequestBody Member member, BindingResult result) {
        log.info("member : {}", member);
        log.info("result : {}", result.hasFieldErrors());
    }
}

POSTMAN 요청 테스트

실행결과

member : Member(id=ho, name=name)
result : true

이처럼 예외를 메소드레벨에서 잡아서 별도로 처리할 수 있다.

 

'프레임워크 > Spring Boot' 카테고리의 다른 글

Spring MVC @ResponseBody  (0) 2022.05.30
Spring MVC @ModelAttribute (매개변수 레벨)  (0) 2022.05.25
Spring MVC @CookieValue  (0) 2022.05.24

관련글 더보기

댓글 영역