SpringBoot - Swagger 3.0.0 적용

김운채·2023년 7월 17일
0

TIL

목록 보기
21/22

개발자들이 제일 싫어하는 문서작업..
하지만 프로젝트에는 수많은 api 가 있기 때문에 누군가는,,, 정리/관리를 해줘야 한다.🤦‍♀️

그래서 Swagger 를 추천받아 쓰기로 했다!

Swagger는 API 문서화를 쉽게 자동화 할 수 있도록 도와주고, 페이지에서 파라미터를 넣어서 실제 응답을 테스트 할 수도 있다.

springboot 프로젝트에 swagger 를 적용해서 api를 관리해보자!

1. Swagger 설정

1) 의존성 추가

build.gradle 파일에 다음과 같이 의존성을 추가 해준 후

implementation "io.springfox:springfox-boot-starter:3.0.0"
implementation "io.springfox:springfox-swagger-ui:3.0.0"

2) Configuration 클래스 추가

configuration 파일인 SwaggerConfig.java 를 만들어준다

@Configuration
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.OAS_30)
            .useDefaultResponseMessages(true)// Swagger 에서 제공해주는 기본 응답 코드 (200, 401, 403, 404) 등의 노출 여부
            .select() //선택된 api 에 대한 빌더를 초기화한다. 
            .apis(RequestHandlerSelectors.basePackage("com.example.hotelproject.controller"))
            .paths(PathSelectors.any())  //// apis 에 위치하는 API 중 특정 path 를 선택
            .build()
            .apiInfo(apiInfo());  // Swagger UI 로 노출할 정보
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
            .title("Swagger Test")
            .description("SwaggerConfig")
            .version("3.0")
            .build();
    }
}
  • Docket: - Swagger 설정의 핵심이 되는 Bean
    - useDefaultResponseMessages : Swagger에서 제공해주는 기본 응답 코드 (200, 401, 403, 404)
    - false : 기본 응답 코드 노출하지 않음
    - apis : api 스펙이 작성되어 있는 패키지(Controller)를 지정
    - paths : apis에 있는 API 중 특정 path를 선택
    - apiInfo : Swagger UI로 노출할 정보
    - select: 선택된 api 에 대한 빌더를 초기화한다.
    - build: ApiSelectorBuilder 를 빌드한다. Docket 타입을 반환한다.

빌드하고 실행 후, 확인!
http://localhost:8080/swagger-ui/

2. 오류

빌드하고 실행하면 뙇!!!! 될줄 알았지만,, 오류를 만났다.
Failed to start bean 'documentationPluginsBootstrapper'

application.properties 에 요놈 추가하니 잘 됐다!

spring.mvc.pathmatch.matching-strategy=ant_path_matcher

Spring boot 2.6.2버전 이후 sping.mvc.pathmatch.matching-strategy 의 값이
ant_path_matcher -> path_pattern_parser로 변경되면서 라이브러리(swagger포함)내부에 오류가 발생한다고 한다.

3. Swagger 사용하기

  • @ApiOperation을 사용하여 해당 API에 대한 설명을 추가할 수 있다.
  • @ApiParam을 사용하여 매개 변수에 대한 세부 정보를 추가하거나 코드에서 읽을 때 값을 변경할 수 있다.
    더많은 어노테이션은 다른 블로그가 정리를 더 잘해놨으니 참고,,
    https://velog.io/@gillog/Swagger-UI-Annotation-%EC%84%A4%EB%AA%85

1개의 댓글

comment-user-thumbnail
2023년 7월 17일

많은 도움이 되었습니다, 감사합니다.

답글 달기