@RequestBody
📩 @RequestBody
정의
@RequestBody는 HTTP 요청 본문을 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 요청을 받을 때 자주 사용한다.
댓글남기기