개발/Research
[Research] Springfox Swagger2 -> Springdoc OpenAPI 3
로그뉴
2022. 7. 12. 16:31
##1. 개요
swagger를 사용하기 위해서 제공되는 라이브러리는 springfox와 springdoc이 있다.
springfox는 2020년이 마지막 라이브러리 업데이트이며(swagger3), 그 사이에 springfox가 나왔고 springfox는 2022년까지 업데이트 중이다. springfox는 2015년까지 SpringMVC였다가 sprinfox로 이름이 바뀌었다. 2018년 업데이트까지만 해도 webflux를 지원하지 않았지만 2020년 업데이트 때 webflux를 지원하여 springdoc과 비슷해졌다.
##2. swagger 2 vs OpenAPI3
참고: https://nordicapis.com/whats-the-difference-between-swagger-and-openapi/
swagger는 v2와 v3가 있는데 v3로 업데이트 할 예정이며, swagger에서 openAPI로 용어도 변경되었다.
- OpenAPI = 이전에 Swagger 사양으로 알려진 사양 자체
- Swagger = OpenAPI 구현에 사용되는 도구
swagger2와 openAPI3의 구조적 차이는 다음과 같다.

swagger2와 swagger3 어노테이션의 차이는 아래와 같다. (springdoc은 swagger3 어노테이션을 사용중이다.)

##3. springdoc-openapi 적용
공식 문서: https://springdoc.org
2022. 3. 31 기준, 가장 최신 버전은 v1.6.6이다.
Springdoc OpenAPI modules는 다음과 같다.
