2017-12-10 18 views
0

Swagger를 매우 간단한 Spring Boot REST 응용 프로그램에 통합하려고 시도하는 동안 Swagger-UI.html이 표시되지 않고 사용자 정의 된 API 정보를 선택합니다. Swagger UI 페이지에 사용자 정의 된 API 정보가 표시되도록 아래 코드를 어떻게 변경해야합니까? SwaggerConfig 클래스도 디버깅 할 수는 없지만 중단 점을 넣을 수는 있지만 스프링 부트 앱으로 실행할 때 중단 점은 멈추지 않습니다.Swagger가 사용자 정의 된 API 정보를 선택하지 않고 항상 기본값을 표시합니다.

내가 pom.xml 파일에 무엇을 가지고 :

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

내 SwaggerConfig 등급 :

@Configuration 
@EnableSwagger2 
public class SwaggerConfig { 

    @Bean 
    public Docket messageApi() { 
     return new Docket(DocumentationType.SWAGGER_2) 
       .groupName("cool-report-api") 
       .apiInfo(apiInfo()) 
       .select() 
       .paths(messageApiPaths()).build(); 
    } 

    private Predicate<String> messageApiPaths() { 
     return or(regex("/api/topics.*"), regex("/api/message.*")); 
    } 

    private ApiInfo apiInfo() { 
     return new ApiInfoBuilder() 
       .title("Cool Message Receiver API") 
       .description("Cool Message Receiver REST API Reference") 
       .termsOfServiceUrl("http://www.cool-message-receiver.com") 
       .contact(new Contact("John Smith", null, "[email protected]")) 
       .license("Cool Proprietary Software") 
       .licenseUrl("www.cool-message.com") 
       .version("0.1.0") 
       .build(); 
    } 

} 

하지만 스프링 부팅 후 : 위의 코드를 실행, 사용자 정의 된 API 정보는하지 않는 것 Swagger는 여전히 기본 "Api 문서"제목과 "Apache 2.0"라이센스 등을 표시합니다. 지금보고있는 내용은 다음과 같습니다.

enter image description here

답변

0

문제는 messageApisPath()라고 생각합니다.

다음 라이브러리를 추가해야합니다 :

<dependency> 
     <groupId>com.google.guava</groupId> 
     <artifactId>guava</artifactId> 
     <version>16.0.1</version> 
    </dependency> 

그것은 술어 기능을 많이 포함하고 있습니다. 귀하의 '또는'가 거기에서 오는지 확인하십시오. 나를 위해

다음 작품

private Predicate<String> messageApiPaths() { 
    return Predicates.or(PathSelectors.regex("/api/topics.*"), PathSelectors.regex("/api/message.*")); 
} 

감사

+0

는, 입력 주셔서 감사합니다 시도했지만 문제가 해결되지 않았다. 증상은 API 정보가 선택되지 않는다는 것입니다. API 경로가 정상입니다. –

+0

죄송합니다. :( –