나는 SpringBoot로 API 개발을 하고있었다.
게시글 등록을 구현 후 Swagger로 테스트 했는데 아래와 같은 상태코드가 반환되었다.
status : 415
error : Unsupported Media Type
나는 Controller 에서 consumes = MediaType.MULTIPART_FORM_DATA_VALUE
로 지정하여 요청을 multipart/form-data
형식으로 보내겠다고 지정했다.
그리고 데이터를 받아올 때 @RequestBody
로 받아오라고 지정했다.
결론부터 말하면 @RequestBody
로 받아온 것이 문제였다.
@RequestBody
는 multipart/form-data
형식을 처리할 수 없기 때문에 415 에러가 발생했다.
@RequestBody
와 @ModelAttribute
는 서로 다른 방식으로 요청 데이터를 처리한다.
@RequestBody
는 HTTP 요청의 본문(body) 데이터를 바인딩하고, @ModelAttribute
는 폼 데이터와 같은 요청 파라미터를 객체에 바인딩하는 데 사용된다.
@RequestBody
대신 @ModelAttribute
를 사용했더니 정상적으로 실행되었다.