Pourquoi ne springfox-swagger2 UI me dire “Impossible de déduire l'url de base.”
Pourquoi ne springfox-swagger2 UI me dire Unable to infer base url.
pour autant Que je sais, je suis à l'aide d'un typique Swagger printemps-configuration de démarrage.
Comme vous pouvez le voir dans la capture d'écran, l'arrogance-fox url de la sauvegarde de l'INTERFACE utilisateur est example.com/api . NOTE: je reçois un standard de Printemps Whitelabel Error Page
lorsque je navigue à: https://localhost:9600/api/v2/api-docs/ . Je suppose que c'est la racine du problème? Je ne vois pas d'erreurs que le Printemps ne se charge pas springfox-swagger2
et donc je ne sais pas pourquoi cela ne fonctionne pas.
Ma config ressemble à quelque chose comme ça (et j'ai essayé toutes sortes de variations de cette configuration, de la recherche sur le net pour obtenir des conseils):
@EnableSwagger2
@EnableWebMvc
@ComponentScan(basePackages = {"com.company.project"})
public class SwaggerConfig
{
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(Predicates.not(RequestHandlerSelectors.basePackage("org.springframework.boot")))
.apis(Predicates.not(RequestHandlerSelectors.basePackage("org.springframework.cloud")))
.apis(Predicates.not(RequestHandlerSelectors.basePackage("org.springframework.data.rest.webmvc")))
.paths(PathSelectors.any())
.build();
}
}
Et
<!-- to generate /swagger-ui.html -->
<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>
REMARQUE: il est Intéressant de noter, quand j'ai essayer la version 2.6.0, je n'ai pas l'modal popup mais mon Style de l'INTERFACE utilisateur affiche 0 api de contenu. Donc, je sais que modal doit être assez nouveau?
Si il n'y a pas assez d'info ici, laissez-moi un commentaire.
springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation
et de débogage pour savoir pourquoi vous obtenez une erreur lors de la tentative d'accès https://localhost:9600/api/v2/api-docs/
Ok, merci. Je vais le faire. Donnez-moi quelques jours pour ce faire.
Comment puis-je obtenir le module/nom du projet est à l'url de base ?
OriginalL'auteur djangofan | 2017-11-22
Vous devez vous connecter pour publier un commentaire.
J'ai été en mesure de résoudre le problème en ajoutant SpringBootApplication avec l'annotation comme le suggère Marque :
OriginalL'auteur Shiva Achari
Pour moi le problème était que le Printemps de Sécurité n'était pas de permettre l'accès à certaines ressources nécessaires à swagger-ui. La solution a été d'autoriser l'accès anonyme pour les chemins d'accès suivants:
Dans mon cas, c'est très bien que ces ressources soient accessibles sans authentification.
public void configurer(WebSecurity web) throws Exception {web.ignorant().mvcMatchers("/swagger-ui.html/**", "/configuration/**","/swagger-ressources/**", "/v2/api-docs","/webjars/**");}
Je ne suis pas à l'aide de Spring Security, même problème.
OriginalL'auteur Northmoor
Juste Étendre votre classe principale avec SpringBootServletInitalizer.
Cela fonctionnera très bien.
Prendre de référence comme ci-dessous.
OriginalL'auteur UmaShankar Chaurasiya
Il s'avère que la solution à mon problème était de déplacer le
@EnableSwagger2
annotation dans la Configuration principale de la classe, ainsi que le Dossier de Haricot.J'avais créé une classe distincte dans un sous-package avec la fiche de Haricot et je m'attendais à obtenir scanné par le Printemps et la charge de la fève. Peut-être que je n'ai pas réussi à annoter que le dossier de la classe avec
@Component
, ou peut-être la le problème était autre chose, mais je l'ai eu à travailler.Pas fonctionné pour moi
OriginalL'auteur djangofan
Pour le Printemps 2 utilisez @SpringBootApplication annotation et étend l'application de classe de SpringBootServletInitializer ensuite remplacer la méthode SpringApplicationBuilder
OriginalL'auteur Kendy Alvarado