1. 概述
在創建 Swagger 文檔時,我們經常需要隱藏端點,防止端點暴露給最終用户。最常見的做法是當端點尚未準備好時。我們還可以有某些私有端點,不想暴露它們。
在本文中,我們將探討如何從 Swagger API 文檔中隱藏端點。要實現這一點,我們將使用控制器的註解。
2. 使用 @ApiIgnore 隱藏端點
The @ApiIgnore annotation allows us to hide an endpoint
@ApiIgnore
@ApiOperation(value = "This method is used to get the author name.")
@GetMapping("/getAuthor")
public String getAuthor() {
return "Umang Budhwar";
}
3. 隱藏端點使用 @ApiOperation
或者,我們可以使用 @ApiOperation 來隱藏單個端點:
@ApiOperation(value = "This method is used to get the current date.", hidden = true)
@GetMapping("/getDate")
public LocalDate getDate() {
return LocalDate.now();
}
請注意,我們需要將 hidden 屬性設置為 true,才能讓 Swagger 忽略該端點。
4. 使用 @ApiIgnore 隱藏所有端點
儘管如此,有時我們需要隱藏控制器類中的所有端點。我們可以通過使用 @ApiIgnore 註解來完成此操作:
@ApiIgnore
@RestController
public class RegularRestController {
// regular code
}
需要注意的是,這會隱藏整個控制器類,從文檔中移除。
6. 隱藏端點使用 @Hidden
如果使用 OpenAPI v3,可以使用 @Hidden 註解隱藏端點:
@Hidden
@GetMapping("/getAuthor")
public String getAuthor() {
return "Umang Budhwar";
}
7. 隱藏所有端點,使用 @Hidden
類似於地,我們可以使用 @Hidden 註解來隱藏所有端點:
@Hidden
@RestController
public class RegularRestController {
// regular code
}
這將也會隱藏控制器,從文檔中。
注意: 我們只能在使用了 OpenAPI 時使用 @Hidden。 Swagger v3 中該註解的支持仍在進行中。
8. 結論
在本教程中,我們學習瞭如何從 Swagger 文檔中隱藏端點。我們討論瞭如何隱藏單個端點以及所有控制器類端點。