스프링부트에서 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
해당 링크에서 다시 확인해보면
제대로 실행되는 것을 알 수 있다
'[ Development ] > [ Back-end ] Spring 기본' 카테고리의 다른 글
[Spring/Swagger] SpringBoot의 Spring Security 환경에서 Swagger 적용시 로그인 화면 임시 해결 방법 (0) | 2024.02.15 |
---|---|
[Spring 스프링 기본] 의존관계 자동 주입 (0) | 2023.12.26 |
[Spring 스프링 기본] 컴포넌트 스캔 (1) | 2023.12.05 |
[Spring 스프링 기본] 싱글톤 컨테이너 (1) | 2023.11.28 |
[Spring 스프링 기본] 스프링 컨테이너와 스프링 빈 (0) | 2023.11.21 |
[Spring 스프링 기본] 객체 지향 원리 적용 (0) | 2023.11.14 |
[Spring 스프링 기본] 2. 핵심 원리 이해 1 - 예제 만들기 (0) | 2023.11.07 |