📩 @RequestBody

정의

@RequestBodyHTTP 요청 본문을 Java 객체로 변환해서 전달하는 애너테이션이다.

JSON 같은 요청 데이터를 컨트롤러 메서드의 객체로 바로 받고 싶을 때 사용한다.

🧩 역할

  • 요청 본문을 Java 객체로 변환한다.
  • HttpMessageConverter를 통해 JSON 등을 읽어들인다.
  • @Valid와 함께 사용해 요청 데이터 검증을 할 수 있다.

🛠 사용법

@PostMapping(value = "/add")
public ResponseEntity<UserAddResponse> addUser(@RequestBody @Valid UserAddForm userAddForm, BindingResult bindingResult) {
    ...
}

⚙️ 변환 방식

tip

@RequestBody만으로는 요청 본문을 객체로 바꿀 수 없고, 적절한 HttpMessageConverter가 함께 동작해야 한다.

@Configuration
@EnableWebMvc
public class APIConfiguration implements WebMvcConfigurer {
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        GsonHttpMessageConverter converter = new GsonHttpMessageConverter();
        converters.add(converter);
    }
}
implementation 'com.google.code.gson:gson:2.8.8'

⚠️ 주의사항

  • 요청 본문 형식과 컨버터 설정이 맞아야 한다.
  • JSON 요청을 받으려면 JSON 변환기가 필요하다.
  • @RequestBody는 요청 파라미터가 아니라 요청 본문을 읽는다.

📌 정리

  • @RequestBody는 HTTP 요청 본문을 객체로 바꾸는 애너테이션이다.
  • HttpMessageConverter와 함께 동작한다.
  • JSON 요청을 받을 때 자주 사용한다.

연결문서

댓글남기기