2017-01-02 98 views
9

我设置一个春天启动的项目包括Spring数据休息和扬鞭:扬鞭不检测弹簧数据的REST API和Spring引导

<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> 

这是我扬鞭配置:从应用

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

摘录。属性:

spring.data.rest.base-path=/api 
server.context-path=/myapp 

当我运行服务器时,所有休息端点都正确映射并可到达/myapp/api/...,包括我自己创建的自定义RestController。

但是:

  • http://localhost:8080/myapp/api我可以看到春天 数据的REST API的(JSON格式)列表中,但不能看到我的自定义RestController端点。

  • at 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配置?

回答

4

Spring Data Rest support仅在springfox 2.6.0版本中引入。如果您在升级到最新版本的springfox(本文写作时为2.6.1)后关注the instructions,则不应该在渲染端点时出现问题。

+0

谢谢。按照说明,我将版本升级到2.6.1并添加了Maven依赖项,但我一直处于相同的情况。 – Manu

+0

在'.build()' – sofend

1

你从springfox-data-rest导入配置吗?正如迪利普克里希南说,我遵循的指示和进口的配置,添加此批注我的主应用程序类:

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

希望它能帮助!

+0

之后加上''.pathMapping(“/ myapp”)'嘿,它应该放在哪里?什么文件? –

+0

@LuizMitidiero你可以将它添加到主应用程序类或SwaggerConfig类中。 –

3

升级到Spring配置/应用类招摇

<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> 

另外进口弹簧数据休息注释的最新版本。

@Import(SpringDataRestConfiguration.class) 
+0

'@Import(SpringDataRestConfiguration.class)'为我做了诡计。我把它放在'Application'类中。谢谢! –