waveofmymind
기록하는 습관
waveofmymind
전체 방문자
오늘
어제
  • 분류 전체보기 (124)
    • 📝 정리 (5)
    • 🌊TIL (9)
    • 💻CS (1)
      • 자료구조 (1)
    • 📙Language (9)
      • ☕Java (6)
      • 🤖Kotlin (3)
    • 🍃Spring (28)
    • 👨🏻‍💻알고리즘 (67)
      • 프로그래머스 (59)
      • 백준 (3)
    • 👷DevOps (4)
      • 🐳Docker (2)
      • 🤵Jenkins (1)

블로그 메뉴

  • 홈
  • Spring
  • Java
  • 알고리즘

공지사항

인기 글

태그

  • 트랜잭션
  • CORS
  • 스택
  • 트랜잭션 전파
  • spring
  • chat GPT
  • kotest
  • 힙
  • sql
  • resultset
  • 통합테스트
  • LeetCode
  • kotlin
  • mybatis
  • BFS
  • 코틀린
  • 다이나믹 프로그래밍
  • Open AI
  • til
  • 챗GPT
  • Connection
  • AOP
  • JDBC
  • 완전탐색
  • 스프링 시큐리티
  • spring boot
  • 스프링 부트
  • SpringAOP
  • Spring Security
  • 스프링

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
waveofmymind

기록하는 습관

[Spring Boot] 스프링 부트 3 이상에서 Springdocs swagger 적용하기
🍃Spring

[Spring Boot] 스프링 부트 3 이상에서 Springdocs swagger 적용하기

2023. 2. 19. 21:02

스프링 부트 3.0.2를 사용하여 개인 프로젝트를 진행 중, API 문서 자동화를 하기 위해 Swagger를 적용할 필요가 생겼다.

 

많이들 이용하는 springfox와 springdocs의 swagger가 있는데, springfox는 최근 업데이트가 너무 안되고 있어 springdocs로 적용해볼 것이다.

스프링 부트 2.X

기본적으로 swagger를 위해 추가해야할 gradle은 다음과 같다.

implementation 'org.springdoc:springdoc-openapi-ui:1.6.9'

그리고 config로 다음과 같이 작성하고,

@Configuration
public class SpringDocsConfig {

    @Bean
    public OpenAPI openAPI(
            @Value("${springdoc.version}") String version
    ) {

        Info info = new Info()
                .title("Algorithms Review Board API Docs") // 타이틀
                .version(version) // 문서 버전
                .description("잘못된 부분이나 오류 발생 시 바로 말씀해주세요.") // 문서 설명
                .contact(new Contact() // 연락처
                        .name("waveofmymind")
                        .email("sjun0913@gmail.com"));

        return new OpenAPI()
                .info(info);
    }
}

 

application.yml에는

springdoc:
  swagger-ui:
    enabled: true
    path: '/swagger-ui.html'
    try-it-out-enabled: false
  version: 'v1'

path에 접속할 경로를, version에 설정할 버전을 작성하면 된다.

 

위와 같이 작성했는데 스프링 부트 3 이상부터는 404 에러가 발생할 것이다.

 

아마 스프링 부트 3부터는 지원하지 않는 것 같다.

 

스프링 부트 3 이상

그래서 해결 방법을 구글링 해본 결과, 다음 버전을 이용해야 한다.

https://springdoc.org/v2/#Introduction

 

springdoc-openapi v2.0.2

springdoc-openapi java library helps to automate the generation of API documentation using spring boot projects. springdoc-openapi works by examining an application at runtime to infer API semantics based on spring configurations, class structure and vario

springdoc.org

그래서 기존에 입력했던 gradle을 제거하고 다음을 추가한다.

implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'

반드시 위에서 입력했던 implementation 'org.springdoc:springdoc-openapi-ui:1.6.9' 를 제거하자.

 

결과 

다음과 같이 잘 나온다.

'🍃Spring' 카테고리의 다른 글

[Spring] Spring AOP를 이용한 권한 체크  (0) 2023.02.21
[Spring] Business Exception 처리하기  (0) 2023.02.21
[Spring Boot] @ResponseStatus와 ResponseEntity  (0) 2023.02.18
[Spring Data JPA] 페이징  (0) 2023.02.16
[Spring] MapStruct 사용시 매핑이 제대로 안될 경우  (0) 2023.02.14
    '🍃Spring' 카테고리의 다른 글
    • [Spring] Spring AOP를 이용한 권한 체크
    • [Spring] Business Exception 처리하기
    • [Spring Boot] @ResponseStatus와 ResponseEntity
    • [Spring Data JPA] 페이징
    waveofmymind
    waveofmymind

    티스토리툴바