我设置了一个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>
这是我的Swagger配置:
@Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) .build(); } }
摘自application.properties:
spring.data.rest.base-path=/api server.context-path=/myapp
运行服务器时,所有其余端点均已正确映射并可以访问/myapp/api/...,包括我自己创建的自定义RestController。
/myapp/api/...
然而:
在http://localhost:8080/myapp/api我可以看到春天的数据的REST API列表(JSON格式),但不能看到我的自定义RestController端点。
http://localhost:8080/myapp/api
在http://localhost:8080/myapp/swagger-ui.html我看到的一个不错的gui中,它仅列出了我的自定义RestController和错误端点,而不列出Spring Data Rest API。实际上,http:// localhost:8080 / myapp / v2 / api-docs没有对Spring Data Rest端点进行任何引用,而仅引用了我自定义的RestController和错误端点。
http://localhost:8080/myapp/swagger-ui.html
如何修复Spring Data Rest&Swagger配置?
Spring Data Rest支持仅在springfox 2.6.0版本中引入。如果在升级到最新版本的springfox(在撰写本文时为2.6.1)之后,按照说明进行操作,则渲染端点应该没有问题。