SpringDoc
Last updated
Last updated
springdoc-openapi
는 Spring Boot 프로젝트의 문서를 자동으로 생성하는 자바 라이브러리이다. Swagger-UI를 기반으로 하며, application.properties
또는 application.yml
을 통해 간단한 설정으로 사용이 가능하다는 장점이 있다.
Maven Repository에서 springdoc 의존성을 찾아 pom.xml 또는 build.gradle에 추가한다.
작성 시점(2022-11-11) 기준 최신 버전은 1.16.12이다.
application.properties
또는 application.yml
파일에 다음과 같이 springdoc 설정을 작성한다.
springdoc.swagger-ui.path - swagger ui 접속 페이지 주소 (기본값 /swagger-ui/index.html
)
springdoc.packages-to-scan - 문서화할 패키지 경로
설정에 대한 상세 정보는 다음 링크에서 확인할 수 있다.
실행하면 다음과 같은 페이지를 확인할 수 있다.
공식 사이트에서 제공하는 데모 페이지는 다음 링크에서 확인할 수 있다.
표시되는 문서의 정보를 설정하기 위해서 필요한 설정은 다음과 같다.
@Configuration
을 생성하고 @OpenApiDefinition
을 통해 문서의 정보를 설정한다. @Info
에 설정하는 정보는 다음과 같다.
title - API 문서의 최상단 제목
description - 제목 아래 적힐 설명
version - 문서의 버전(통상적으로 v로 시작하며 major, minor, release 버전을 기재)
contact - 연락처 정보
license - 라이선스 정보
extensions - 확장 목록 (https://swagger.io/docs/specification/2-0/swagger-extensions/)
termsOfService - 이용 약관 정보
컨트롤러 클래스의 표시 이름을 @Tag
설정으로 변경한다. 같은 태그는 같은그룹으로 표시된다.
매핑에 대한 명세 설정은 @Operation
설정으로 변경한다.
@Operation
- 작업 설명
summary - 요약 설명
description - 상세 설명
responses - 응답 설정 (@ApiResponse
)
responseCode - 응답 상태 코드
content - 응답 데이터 형태 (@Content
)
mediaType - 응답 데이터 Content-Type
schema - 응답 객체의 형태(단일 객체인 경우) (@Schema
)
arraySchema - 응답 객체 배열의 형태(배열 혹은 리스트인 경우) (@ArraySchema
)
examples - 응답 객체 예시 (@ExampleObject
)
@Parameter
- 파라미터 설명
description - 설명
example - 응답 객체 예시 (@ExampleObject
)