youtube-comment-search / server

1 stars 0 forks source link

Swagger를 이용한 API문서화 작업중 비동기 방식일 때 model 안보이는 문제 #2

Open ssongjay opened 1 year ago

ssongjay commented 1 year ago

Swagger를 이용한 간단한 api 문서화를 진행중이다. 동기 방식이었던 것을 비동기로 변경하는 과정에서 문제가 발생하였다.

먼저 아직 동기 방식인 채널, 비디오 검색 api (/search/channel-video)를 봐보자

example value와 model 형태가 모두 잘 나오는 것을 확인할 수 있다.

image image

비동기 방식인 채널의 댓글 검색 api(/search/comment-channel)를 봐보자

image

비동기 방식일 때 response body 부분이 빈 배열로 나온다.

ssongjay commented 1 year ago

해결방법

사용하고 있던 springfox-swagger-ui는 webflux를 지원하지 않아 Mono나 Flux형태의 response는 model에 바로 나오지 않았다. 그래서 webflux를 지원해주는 springdoc-openapi-ui로 바꿨다. springdoc-openapi-ui는 비동기 방식의 response형태인 Mono와 Flux를 별다른 설정 없이 unwrap 해주어서 response의 DTO형태를 바로 알 수 있게 되었다.

ssongjay commented 1 year ago

DTO 형태를 알 수 있는 scheme 가 토글된 상태로 wrap 되어 있는 불편함 발생

토글된 상태라 한번 더 눌러야 변수의 자료형이나 설명이 나와서 문서를 보는 입장에서 불편할 것 같다. swagger2에서 openapi3으로 버전업 하면서 swagger2의 defaultmodelsexpanddepth() 옵션(model의 기본 토글 깊이를 정해줌) 같은 기능을 하는 방법을 찾으면 수정 예정.

image