Swagger没有使用Spring Boot检测Spring Data Rest API

Man*_*anu 15 spring swagger spring-data-rest spring-boot

我设置了Spring Boot项目,包括Spring Data Rest和Swagger:

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.4.0</version>
</dependency>
<dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.4.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

这是我的Swagger配置:

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

摘自application.properties:

spring.data.rest.base-path=/api
server.context-path=/myapp
Run Code Online (Sandbox Code Playgroud)

当我运行服务器时,所有其他端点都被正确映射并可以访问/myapp/api/...,包括我自己创建的自定义RestController.

然而:

  • http://localhost:8080/myapp/api我可以看到Spring Data Rest API列表(采用Json格式),但无法看到我的自定义RestController端点.

  • http://localhost:8080/myapp/swagger-ui.html我看到一个很好的gui,它只列出我的自定义RestController和错误端点,而不是Spring Data Rest API.实际上,http:// localhost:8080/myapp/v2/api-docs不会对Spring Data Rest端点进行任何引用,而只对我的自定义RestController和错误端点进行引用.

如何修复Spring Data Rest&Swagger配置?

jzq*_*zqa 7

升级到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>
Run Code Online (Sandbox Code Playgroud)

另外在spring Configuration/Application类上导入spring数据rest注释.

@Import(SpringDataRestConfiguration.class)
Run Code Online (Sandbox Code Playgroud)


Dil*_*nan 5

Spring Data Rest支持仅在springfox 2.6.0版本中引入.如果您在升级到最新版本的springfox(撰写本文时为2.6.1)后按照说明进行操作,那么渲染端点应该没有问题.