프론트에서 Swagger UI로 API를 실행할 때
@RequestPart로 JSON을 받는 경우, Swagger는 이를 file로 인식해서 Content-Type: application/octet-stream으로 전송하게 되고,
이로 인해 Content-Type 'application/octet-stream' is not supported 오류가 발생한다.
2025-04-12T02:10:40.517+09:00 WARN 20456 --- [gymmate]
[nio-8080-exec-5] .m.m.a.ExceptionHandlerExceptionResolver :
Resolved [org.springframework.web.HttpMediaTypeNotSupportedException:
Content-Type 'application/octet-stream' is not supported]
이를 해결하기 위해서는 @RequestPart를 String으로 받고, 컨트롤러 내부에서 직접 JSON을 파싱하는 방식으로 변경해야 한다.
그러면 @Valid 으로 request 에 대해 검증을 진행할 수가 없다.
@RequestPart로 JSON을 받는 경우, Swagger에서 등록, 수정, 삭제에 대해서 API 실행을 할 수 없고 조회하는 것만 가능한데 괜찮은 걸까?
실제 운영 환경에서는 대부분 API 테스트를 Postman, Insomnia, 실제 프론트엔드 연동으로 진행해.
Swagger는 문서 + 스펙 안내 도구 역할이 더 크고,
Swagger에서 실행이 안 된다고 해서 API 자체가 문제 있는 건 아니다.
결론, 지금 구조 유지 + Swagger 설명 강화 + Postman 테스트 제공