티스토리 뷰





반응형

의존성 추가하기

implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0'

 

스웨거의 경우 springDoc라는 라이브러리가 1개 더 있고,

2.x 와 3.x 버전의 차이가 있다.

 

SwaggerConfig.java 추가

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;


@Configuration  //스프링 실행시 설정파일 읽어드리기 위한 어노테이션
@EnableSwagger2
public class SwaggerConfig {

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

 

이렇게 설정 파일만 추가해주고 서버를 켜주면 된다.

 

그러나 필자는 이때 에러가 하나 발생하게 되었다.

Error starting ApplicationContext. 
To display the conditions report re-run your application with 'debug' enabled.

Failed to start bean 'documentationPluginsBootstrapper';
nested exception is java.lang.NullPointerException: 
Cannot invoke "org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.getPatterns()" 
because "this.condition" is null

 

뭐 이런식의 에러였는데 application.properties에 한 줄 추가하고 해결했다.

# 스웨거 의존성 추가하고 서버가 안켜질 때
spring.mvc.pathmatch.matching-strategy = ant_path_matcher

 

결과 화면 : http://localhost:{my-port}/swagger-ui/

오.. 뭔가가 나온다. 하지만 대문짝 만한 Api Documentation이 맘에 들지 않는다..

SwaggerConfig를 수정해보자.

 

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;


@Configuration  //스프링 실행시 설정파일 읽어드리기 위한 어노테이션
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
        		.apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.ant("/*/**"))
                .build();
    }
    
    public ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("게시글 API")
                .version("3.4")
                .description("추삭수가 가능한 게시글 api 입니다잇!!")
                .build();
    }
}

 

음.. 조금 낫군!

 

 

필자는 만들어둔 컨트롤러가 있기 때문에 위와 같이 정보가 조금 더 나오게 되었다.

그 말인 즉슨 이정도 셋팅으로 현재 구현된 controller의 정보를 읽어 편리하게 다 만들어준다는 사실이다!!

 

반응형
댓글
반응형
최근에 달린 댓글
글 보관함
Total
Today
Yesterday
최근에 올라온 글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30