본문 바로가기
[ Development ]/[ Back-end ] Spring 기본

[Spring/Swagger] 스프링부트에서 Swagger 사용하기 :: springdoc-openapi-ui 라이브러리

by dev charlotte 2024. 2. 15.

스프링부트에서 Swagger를 사용하는 방법은 여러 가지가 있다

 

(일단 swagger를 모르는 분들을 위해 간단하게 설명하자면

API Documentation & Design Tools for Teams 이다

API를 확인하고 정리하기 편하게 돕는 툴...!)

 

1. spring fox를 사용할 수 없는 SpringBoot.3.n.n

이전 프로젝트에서는 spring fox를 이용했었는데

이제 스프링 부트 이니셜라이저에서 

2.nn 버전을 제공하지 않고

3.n.n 버전만 제공하게 되면서

spring fox를 사용할 수 없게 되었다

 

2. SpringBoot 3.n.n 이상 버전에서의 Swagger 도입 방법 = springdoc

검색해보면 대부분의 Swagger 도입 프로젝트 코드는 springfox를 이용하고 있지만

스프링 부트에서 지원하지 않기 때문에 springdoc-openapi 라이브러리를 사용해야한다

 

두 라이브러리는 모두 스프링 프레임워크에서 사용하는 애플리케이션이

swagger를 이용해 api 문서화를 쉽게 할 수 있도록 도와주는 라이브러리이다

 

기능은 같지만 치명적인 차이점이 한 가지 있는데

springfox 라이브러리의 깃허브는 2020년 7월 이후

업데이트가 되지 않고 있다는 것이다

 

그래서 우리는 마지막 릴리즈가 상대적으로 최근인

springdoc-openapi 라이브러리를 사용해야한다

 

2-1. springdoc-openapi-ui 라이브러리 소개

springdoc 라이브러리에서 open api 3점 대 버전에 맞게 json파일을 생성해주면

springdoc 라이브러리의 openapi-ui 내부에 있는 swagger ui가

화면을 구성해서 json 파일 내용을 보여주는 방식이다

 

2-2. build.gradle 에 dependency 의존성 추가

// https://springdoc.org 의 공식 dependency 코드
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'

// 프로젝트에 적용한 코드
implementation 'org.springdoc:springdoc-openapi-ui:1.6.9'

 

build.gradle에 적용하는 방법 외에

다른 방법도 있지만 복잡해서 추천하지 않는다

( SwaggerConfig.java 파일에

Config 내용을 수동으로 작성하는 방법.

Controller에 하나씩 전부 적용해주어야 하므로

간단한 프로젝트에서는 비효율적)

2-3. Swagger 확인

http://localhost:8080/swagger-ui/index.html 

해당 링크에서 다시 확인해보면

제대로 실행되는 것을 알 수 있다