코딩 하는 가든

SpringBoot - Swagger 설정해보기 본문

Spring (boot)

SpringBoot - Swagger 설정해보기

가든리 2020. 3. 22. 01:11

Swagger 설정해보기

Swagger란?

Swagger는 개발자가 API서버를 개발 할 때, API의 스펙에 대한 명세를 편리하게 할 수 있는 API 자동 문서화 도구 (프레임워크) 이다. Spring Boot에 적용 할 수 있는 유명한 API 자동 문서화 도구로는 크게 Swagger와 Rest Docs가 있는듯 하다.

 

 원래 Django로 Rest API서버를 개발 하면서 자동 문서화 도구로 Swagger를 사용해 왔었기 때문에 이번 혼자 하는 프로젝트 에서도 익숙한 Swagger를 사용 하기로 결정했다. 그에 따라 Spring Boot에 Swagger 설정을 해보고 그 방법을 기록해 보기로 하였다. 

 

DRF 프로젝트에 Swagger를 적용 한 모습.

 

(현재 gradle을 사용 하고 있기 때문에 gradle 기준으로 작성)

 

1. Swagger 의존성 설정

build.gradle에 스웨거 의존성 설정을 한다.

    compile('io.springfox:springfox-swagger2:2.9.2')
    compile('io.springfox:springfox-swagger-ui:2.9.2')

 

2. Swagger설정 파일 생성

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

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

위와 같이 swagger 설정 파일을 만들어 주면 사실 swagger 설정이 끝난다.

/swagger-ui.html#/ 주소로 접근 하면 자동 문서화된 swagger docs 있다.

이렇게 되면 swagger docs 가장 기본적인 기능들을 사용 있다.

localhost:8080/swagger-ui.html

 

 

이외에 응답포맷이라던지 보안 설정등의 여러 설정들이 있는데 필요에 따라 스프링 스웨거의 공식 문서를 참고하여 설정 하면 하다.

 

https://springfox.github.io/springfox/docs/current/#configuring-springfox

 

Springfox Reference Documentation

The Springfox suite of java libraries are all about automating the generation of machine and human readable specifications for JSON APIs written using the spring family of projects. Springfox works by examining an application, once, at runtime to infer API

springfox.github.io