스프링부트 3.X에 Swagger 적용하기

2023. 6. 17. 00:45·공부/Spring
반응형

 

프로젝트 개발에 본격적으로 들어가기에 앞서 API 문서 자동화가 필요한 거 같아 Swagger를 적용하려한다.

Swagger란?

스웨거는 개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 대형 도구 생태계의 지원을 받는 오픈 소스 소프트웨어 프레임워크이다. 별도의 스웨거 UI 도구를 통해 스웨거를 사용하며 자동화된 문서화, 코드 생성, 테스트 케이스 생성 지원이 포함된다.
출처 : 위키백과

 

반응형

 

Springfox Swagger  vs  Springdoc

Spring Swagger의 경우 2020년의 마지막 버전인 3.0.0에서 멈춰있고, Springdoc의 경우엔 2023년에도 업데이트가 된 것을 mavenRepository에서 확인할 수 있다. 또한 둘의 차이점은 webflux의 지원 여부가 있다. springfox의 경우 webflux를 지원하지 않으며, springdoc의 경우엔 webflux를 지원한다.

 

스프링부트 3.X에 Springfox Swagger를 적용해본 결과 'Whitelable Error Page' 에러가 발생하여 최신 버전인 Springdoc를 적용했다.

 

반응형

 

build.gradle

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

위 종속성을 추가해주면 된다. 추가 후 로드하고 아래 주소로 접속하면 swagger UI 화면을 볼 수 있다.

 

 

Config 파일 구성

/**
 * Swagger springdoc-ui 구성 파일
 */
@Configuration
public class SwaggerConfig {

    @Bean
    public OpenAPI openAPI() {
        Info info = new Info()
                .title("~~ API Document")
                .version("v0.1")
                .description("~~ 프로젝트 API 명세서");
        return new OpenAPI()
                .components(new Components())
                .info(info);
    }
}

 

반응형

 

application.yml 설정

# Swagger springdoc-ui configuration
springdoc:
  packages-to-scan: com.kr.~~ # 프로젝트 패키지 경로
  default-consumes-media-type: application/json;charset=UTF-8
  default-produces-media-type: application/json;charset=UTF-8
  swagger-ui:
    path : ~~-api.html # localhost:8080/~~-api.html
    tags-sorter: alpha
    operations-sorter: alpha
  api-docs:
    path: /api-docs/json
    groups:
      enabled: true
    cache:
      disabled: true

 

 

http://localhost:8080/~~-api.html을 주소창에 입력하면 자동으로 http://localhost:8080/swagger-ui/index.html로 접속된다.

반응형
저작자표시 비영리 변경금지 (새창열림)
'공부/Spring' 카테고리의 다른 글
  • 스프링부트 3.X 스프링 시큐리티 사용해서 회원가입, 로그인, 로그아웃 구현하기
  • Gradle 프로젝트를 Springboot 3.X 프로젝트로 변경하기
  • 토비의 스프링 부트 - 자동 구성 기반 애플리케이션_1
  • 토비의 스프링 부트 - DI와 테스트, 디자인 패턴
데부한
데부한
어차피 할 거면 긍정적으로 하고 싶은 개발자
    반응형
  • 데부한
    동동이개발바닥
    데부한
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • 방통대 컴퓨터과학과 (27)
        • 잡담 (9)
        • 3학년1학기 (17)
      • 프로젝트 및 컨퍼런스 회고 (1)
        • 프로젝트 (4)
        • 한이음 프로젝트 (0)
        • 회고 (3)
      • 공부 (165)
        • Spring (37)
        • JPA (71)
        • 인프런 워밍업 클럽_BE (10)
        • Java (6)
        • React.js (27)
        • 넥사크로 (11)
        • 기타 (3)
      • 알고리즘 (85)
        • 알고리즘 유형 (10)
        • 알고리즘 풀이 (57)
        • SQL 풀이 (18)
      • 에러 해결 (13)
      • 잡담 (7)
        • 국비교육 (2)
        • 구매후기 (5)
        • 진짜 잡담 (0)
  • 블로그 메뉴

    • Github
    • Linkedin
    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    에러해결
    프론트엔드
    Java
    react
    방통대
    백준
    SQL
    MSA
    자바스크립트
    개발자
    전자정부프레임워크
    springboot
    IT
    알고리즘
    JPA
    egov
    넥사크로
    SpringBoot를 이용한 RESTful Web Service 개발
    인프런
    프로그래머스
    oracle
    스프링부트
    기출문제
    Spring
    코딩테스트
    QueryDSL
    토이프로젝트
    RESTful
    운영체제
    토비의스프링부트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데부한
스프링부트 3.X에 Swagger 적용하기
상단으로

티스토리툴바