Swagger not detecting Spring Data Rest APIs with Spring Boot

后端 未结 4 933
名媛妹妹
名媛妹妹 2021-02-04 05:21

I setup a Spring Boot project including Spring Data Rest and Swagger:


        org.springframework.boot
                 


        
相关标签:
4条回答
  • 2021-02-04 05:47

    For spring boot 2 you need to use springfox 3.0. Unfortunately at the time of this writing this version is not released yet but you can use the snapshot version.

    <repositories>
        <repository>
          <id>jcenter-snapshots</id>
          <name>jcenter</name>
          <url>http://oss.jfrog.org/artifactory/oss-snapshot-local/</url>
        </repository>
    </repositories>
    
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>3.0.0-SNAPSHOT</version>
    </dependency>
    

    Also you need to replace @EnableSwagger2 with @EnableSwagger2WebMvc.

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.Import;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.data.rest.configuration.SpringDataRestConfiguration;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
    
    @Configuration
    @EnableSwagger2WebMvc
    @Import(SpringDataRestConfiguration.class)
    
    public class SwaggerConfig {
      @Bean
      public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors.any())
            .paths(PathSelectors.any())
            .build();
      }
    }
    
    0 讨论(0)
  • 2021-02-04 05:48

    Spring Data Rest support was only introduced in springfox version 2.6.0. If you follow the instructions after upgrading to the latest version of springfox (2.6.1 at the time of this writing) you shouldn't have a problem with rendering the endpoints.

    0 讨论(0)
  • 2021-02-04 05:58

    Upgrade to latest version of swagger

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

    Additionally import spring data rest annotation on spring Configuration/Application class.

    @Import(SpringDataRestConfiguration.class)
    
    0 讨论(0)
  • 2021-02-04 06:00

    Did you import the configuration from springfox-data-rest? As Dilip Krishnan said, I followed the instructions and imported the configuration, adding this annotation to my Main Application class:

    @Import({springfox.documentation.spring.data.rest.configuration.SpringDataRestConfiguration.class})
    

    Hope it helps!

    0 讨论(0)
提交回复
热议问题