2017년 6월 16일 금요일

Spring swagger 설정

API backEnd server에서 만든 API를 문서화 시켜주는 Swagger를 설정해보도록 하자.
여러가지 Swagger의 integration tool이 있는데,
이번 예제에서는 spring fox를 사용해보도록 하겠다.

기본적으로 springfox에서는 서버에 설정되어 있는 controller의 request와 response를 파싱하고,
해당 모델들을 json 형식으로 만들어 /v2/api-docs 를 호출하게 되면 응답으로 내려주게 된다.

이에 더해 spring fox에서는 swagger-ui 역시 내장시킬 수 있다.

먼저 아래와 같이 EnableSwagger2 어노테이션을 설정함으로써 해당 /v2/api-docs를 enable할 수 있다.

package org.blog.test.config;

import com.fasterxml.classmate.TypeResolver;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * Created by ugeun.park on 2017-06-17.
 */

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Autowired
    private TypeResolver typeResolver;

    @Bean
    public Docket swaggerApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.regex("/health/*"))
                .build();
    }
}

아래와 같이 springfox-swagger-ui를 dependency로 설정함으로써, 자체 서버 내장 swagger-ui를 사용할 수 있다.

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

- 실행 결과









전체 예제는 아래 링크에서 다운로드 받을 수 있다.

https://gitlab.com/shashaka/spring-swagger-project

댓글 없음 :

댓글 쓰기