[이슈] Swagger 각각 다른 데이터 형식의 다중 요청 매개변수 존재 시 json 형식으로 묶음처리 되는 이슈

2023. 10. 5. 09:17이슈 창고

728x90
SMALL

[Reason]

위의 이미지 처럼 회원가입 api 를 만들고 Swagger를 적용하여 문서화를 적용하였으나 swagger 자체에서 try it out 을 실행할 때 요청되는 매개변수들이 서로 다른 형식의 요청 데이터임에도 불구하고 하나의 Request Body json 형식으로 묶어서 처리되어 원하는 것처럼 두 가지의 데이터로 요청할 수 없었다.

 

 

[Solution]

알고보니 rest api 요청 메소드 어노테이션인 @PostMapping 부분에 consume 속성, produces 속성을 추가하고 요청 매개변수 부분에 @Parameter 어노테이션을 추가하여 Swagger에서 사용할 파라미터임을 명시해 주어야 했다.

 

consume 속성은 클라이언트 측에서 요청할 때 요청되는 데이터들의 형식을 지정해주는 속성이다.

나는 json 형식의 데이터와 multipart 형식의 데이터가 존재하므로 두 가지의 MediaType을 지정해주었다.

 

produces 속성은 서버 측에서 응답해줄 떄 반환할 데이터 형식을 지정하는 속성이다.

당연히 rest api 이니 json 형식으로 지정해주었다.

 

또한, @Parameter 어노테이션을 각 매개변수에 지정해주었기 떄문에 위의 이미지 처럼 두 가지의 요청 매개 변수마다 따로 데이터를 요청해줄 수 있게 되었다.

728x90
반응형
LIST