이번에 만난 오류는..

웹페이지로 test를 해보려 Swagger 접속주소(http://localhost:[사용포트번호]/swagger-ui.html)에 접근했는데 

코드에도 문제가 없고, 심지어 콘솔에서도 오류가 없는데 안열리는 경우였다.

 

 

그럴 때는 코드 상의 오류가 아니라 설정 파일이 잘못 되었다는 것인데 

swagger를 사용하기 위해서는 

1. pom.xml에 의존성을 추가해야 한다.

	<!-- Swagger2 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

 

2. SwaggerConfiguration 파일을 만들어주어야 한다.

SwaggerConfiguration

package com.springboot.valid_exception.config.annotation;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/** Swagger 환경 설정 **/

@Configuration // 환경(설정)에 관한 일을 함
@EnableSwagger2 // swagger를 활성화 시키겠습니다(enable)
public class SwaggerConfiguration {
    @Bean
    public Docket api() {

        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.springboot.valid_exception")) 
                // 어디부터 어디까지 component-scan 역할
                .paths(PathSelectors.any())
                .build();
    }

    /** ui에 뿌려주는 부분 **/
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Spring Boot Open API Test with Swagger")
                .description("설명")
                .version("1.0.0")
                .build();
    }
}

 

그리고 특히나 여기 주의할 점은

Config파일 특성한 이전 프로젝트나 따로 정리해둔 코드를 그대로 사용하는 경우가 많은데

basePackage에서 설정한 패키지를 test하는 데 사용하므로 현재 사용 중인 프로젝트로 설정되어 있는지 꼭 확인하자!

 

필자는 이 부분이 문제였다..ㅎ

+ Recent posts