web-dev-qa-db-fra.com

Swagger avec Spring Boot 2.0 mène à une page d'erreur 404

J'essaie d'intégrer ma version Spring Boot 2.0.1.RELEASE avec Swagger .

D'après ce blog post , il semblait facile de simplement ajouter deux dépendances Maven et tout devrait fonctionner.

J'ai donc ajouté les dépendances suivantes au pom:

        <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.8.0</version>
    </dependency>

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

Et créé le haricot SwaggerConfig:

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

    return docket;
   }
}

Et dans le fichier de propriétés, je me suis retrouvé avec ces 3 entrées lors des tentatives pour le faire fonctionner:

spring.application.name=cat-service
management.server.servlet.context-path=/cat-service
server.servlet.contextPath=/cat-service

Mais à la fin, lors de l'accès

http://localhost:8080/cat-service/api/v2/api-docs 

ou la page de l'interface utilisateur à 

http://localhost:8080/cat-service/swagger-ui.html 

Je reçois une erreur page not found.

J'ai trouvé ce problème dans la page swagger github et cette question dans stackoverflow mais je n'ai pas pu modifier mon erreur 404.

5
riorio

J'ai pu le faire fonctionner avec la version de démarrage de Spring, la version 2.0.4.RELEASE et cet article de blog :

J'ai ajouté ces dépendances:

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>

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

Et ce fichier de configuration:

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 SpringFoxConfig {
    @Bean
    public Docket apiDocket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }
}

Et ça a fonctionné.

3
riorio

Il est devenu travail pour moi après avoir supprimé @EnableWebMvc

0
gstackoverflow