2017-01-02 99 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'類中。謝謝! –