2017-09-11 4 views
2

Après les instructions ici:Ajout de Springfox Swagger-UI et ça ne marche pas, qu'est-ce qui me manque?

http://www.baeldung.com/swagger-2-documentation-for-spring-rest-api

j'ai ajouté ces dépendances à mon projet:

compile "io.springfox:springfox-swagger2:2.7.0" 
compile "io.springfox:springfox-swagger-ui:2.7.0" 

et configurés SpringFox Swagger comme ceci:

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; 

@Configuration 
@EnableSwagger2 
public class SwaggerConfig { 
    @Bean 
    public Docket api() { 
     return new Docket(DocumentationType.SWAGGER_2) 
       .select() 
       .apis(RequestHandlerSelectors.any()) 
       .paths(PathSelectors.any()) 
       .build(); 
    } 
} 

mais semble UI Swagger ne pas être activé. J'ai essayé:

et tout ce que je reçois est:

Whitelabel Error Page 

This application has no explicit mapping for /error, so you are seeing this as a fallback. 

Mon Sep 11 09:43:46 BST 2017 
There was an unexpected error (type=Method Not Allowed, status=405). 
Request method 'GET' not supported 

et sur les journaux que je vois:

2017-09-11 09:54:31.020 WARN 15688 --- [nio-8080-exec-6] o.s.web.servlet.PageNotFound    : Request method 'GET' not supported 
2017-09-11 09:54:31.020 WARN 15688 --- [nio-8080-exec-6] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved exception caused by Handler execution: org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' not supported 

http://localhost:8080/swagger-resources retours:

[{"name": "default", 
    "location": "/v2/api-docs", 
    "swaggerVersion": "2.0"}] 

Qu'est-ce que je manque?

+0

Avez-vous une sécurité de printemps qui pourrait empêcher l'accès? – StanislavL

+0

@StanislavL: non, je n'ai pas encore activé la sécurité. – Pablo

+0

@StanislavL: J'ai ajouté les erreurs de journal que j'obtiens et c'est un PageNotFound. – Pablo

Répondre

3

J'ai rencontré ce problème parce que j'avais des points de terminaison avec des mappages de requête qui avaient des variables de chemin de cette forme:/{var}. Il s'avère qu'il s'agit d'un problème pour les points de terminaison GET et POST, c'est-à-dire GET/{var} et POST/{var} bloquent swagger-ui. Une fois que j'ai rendu les chemins plus spécifiques, j'ai eu le courage de travailler.

Citation de https://github.com/springfox/springfox/issues/1672

Quand le printemps trouve un chemin simple avec un seul fanfaronnades variable ne peut pas intercepter les URL.

Trouvé par l'étude de diverses idées dans les commentaires.