Spring Rest API - Spring Boot Swagger 사용하기

목차

Spring Boot Rest API - Spring Boot Swagger 사용하기

Swagger 란 Open API Specification(OAS) 를 위한 프레임워크다. 개발자가 REST API 서비스를 설계, 빌드, 문서화 할 수 있도록 도와준다.

Swagger를 사용하기 위한 의존성 추가하기

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

Swagger를 사용하기 위한 설정 추가

  • Docket
    • Swagger 설정의 핵심이 되는 Bean
  • apis
    • ApiSelectorBuilder 를 생성
    • 명시된 Package나 어노테이션를 대상으로 Swagger API 문서를 만든다.
    • RequestHandlerSelectors 클래스 메소드를 통해 설정한다.
      • any : 전부
      • basePackage : 명시된 패키지를 대상으로 Swagger API 문서를 만든다.
      • withClassAnnotation : 명시된 어노테이션이 붙은 Class만 Swagger API 문서를 만든다.
      • withMethodAnnotation : 명시된 어노테이션이 붙은 Method만 Swagger API 문서를 만든다.
  • paths
    • apis 에서 명시된 대상에서 paths 조건에 맞는 것만 Swagger API 문서를 만들 수 있도록 필터링 한다.

Open API 3.0 사용한 방법

SwaggerConfig.java

@Configuration
public class SwaggerConfig {
@Bean
public Docket api() {
// Open Api Spec 3.0
return new Docket(DocumentationType.OAS_30)
.select()
.apis(RequestHandlerSelectors.any())
.**paths**(PathSelectors.any())
.build();
}
}

Swagger 2.0 사용한 방법

@Bean
public Docket api(){
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();

}

접속 URL

Swagger UI - http://localhost:8080/swagger-ui/index.html

Swagger 정보 설정하기

Swagger API의 정보를 설정하기 위해 ApiInfo 를 제공한다. ApiInfoBuilder 를 이용해 title, description, version, license 등을 설정한 후 ApiInfo 객체를 생성할 수 있다.

  • apiInfo
    • 제목, 설명 등 Swagger API 문서에 대한 정보를 설정한다.
@Bean
public Docket api() {
return new Docket(DocumentationType.OAS_30) // open api spec 3.0
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo());
}

private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Sample Swagger Title")
.description("sample swagger description")
.version("1.0")
.build();
}

Share