2017-12-10 5 views
0

Während ich versuche, Swagger in eine sehr einfache Spring Boot REST-App zu integrieren, wird Swagger-UI.html meine angepassten API-Informationen nicht anzeigen und abholen. Wie soll ich den unten stehenden Code ändern, damit die Swagger UI-Seite die angepassten API-Informationen anzeigt? Ich kann auch nicht die SwaggerConfig-Klasse debuggen, Breakpoints einfügen, aber wenn sie als Spring Boot-App ausgeführt werden, werden Haltepunkte nicht gestoppt.Swagger greift keine angepassten API-Informationen auf und zeigt immer die Standardwerte

Was ich in pom.xml haben:

<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> 

Meine SwaggerConfig Klasse:

@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(); 
    } 

} 

Aber nachdem ich feder boot: den obigen Code ausführen, wird die angepasste API Info scheint nicht zu arbeiten und Swagger zeigt immer noch die Standard "Api Documentation" Titel und "Apache 2.0" Lizenz usw. Hier ist, was ich jetzt sehe:

enter image description here

Antwort

0

Ich denke, das Problem ist die MessageApisPath().

Stellen Sie sicher, die folgende Bibliothek hinzufügen:

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

Es enthält viele Prädikatfunktionen. Stellen Sie sicher, dass Ihr 'oder' von dort kommt.

Die folgenden Werke für mich

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

Dank

+0

Vielen Dank für die Eingänge, versucht, aber es hat das Problem nicht lösen. Das Symptom ist, dass die API-Informationen nicht abgeholt werden. Die API-Pfade sind in Ordnung. –

+0

Es tut mir leid zu hören. :( –

Verwandte Themen