Spring

Spring Boot로 알아가는 Swagger

JeonInwoo 2020. 4. 7. 18:02

Swagger란?

RestAPI를 문서화 시켜주는 프레임 워크이다. ( java 뿐만 아니라 다양한 언어를 모두 지원한다 )

문서화 뿐만 아니라 기존의 이용하던 Postman의 기능도 지원한다.

 

MAVEN

maven repository에서 swagger 찾아서 주입 ( 아래는 gradle )

더보기

compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.5.0'
compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.5.0'

 

먼저 swagger 기능을 이용하기 위하여 Config파일을 생성을 한다.

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("자신의 controller 패키지"))
                .paths(PathSelectors.any())
                .build();

    }
}

Docket : Swagger 설정의 핵심 설정

select() : ApiSelectorBuilder를 생성한다.

apis() : api 스펙이 작성되어 있는 패키지를 지정한다.

         컨트롤러가 존재하는 패키지를 basepackage로 지정하며, RequestMapping(Get, Post, Put...)이 선언된 API를 문서화한다.

paths() : any() : 자유롭게 사용가능, ant("/test") : /test 로 되어있는 path만 허용