2017-07-17 65 views
1

我建立一個非常簡單的REST服務於春季啓動並請求是這樣的:Swagger顯示不存在的端點。如何擺脫它們?

  • GET/API /資源
  • POST/API /資源
  • GET/API /資源/ ID
  • 刪除/ API /資源/ ID

但是,當我去本地主機:8080 /招搖-ui.html,我得到一個非常長的不存在的名單,冗餘連接dpoints如:

  • DELETE/API /資源
  • PATCH/API /資源
  • HEAD/API /資源
  • OPTIONS/API /資源
  • PATCH/API /資源/ ID
  • HEAD/API /資源/ ID
  • OPTIONS/API /資源/ ID

那麼,如何擺脫它們?我找了一個答案,我只發現如何限制響應列表到一個特定的路徑,這不是我的問題。

我無法通過註釋@ApiOperation(value =「xyz」,hidden = true)隱藏它們,因爲這些請求不存在於我的Controller的代碼中。

這裏是我的SwaggerConfig.java類:

@Configuration 
@EnableSwagger2 
class SwaggerConfig { 

    @Bean 
    public Docket api() { 
     return new Docket(DocumentationType.SWAGGER_2) 
       .apiInfo(apiInfo()) 
       .select() 
       .apis(RequestHandlerSelectors.any()) 
       .paths(regex("/api.*")) 
       .build(); 
    } 
} 

BTW,顯然我在/ V2/API的文檔得到一個404錯誤,但我不認爲這是我的問題,因爲揚鞭顯示正確的端點列表,但也有很多不存在的端點。雖然我還沒有找到這個404錯誤的解決方案,但我不知道我是否應該在意。

回答

1

事實證明,我的控制器代碼是問題:

//@RequestMapping("/resource/{id}") 
@RequestMapping(value = "/resource/{id}", method = RequestMethod.GET) 

方法在@RequestMapping都處處指定獲得揚鞭端點的正確的列表,即使REST服務工作正常,沒有指定的有時。