Swagger常用註解詳解

Swagger是一個廣泛使用的API文檔工具,它可以根據代碼自動生成API文檔,並提供交互式的API測試界面。在Swagger中,註解不僅僅只是用來生成文檔,還能夠控制API的行為,比如控制參數的校驗、控制返回數據的格式、控制API的訪問權限等。在本文中,我們將介紹Swagger常用的註解以及它們的使用方法。

一、@Api

@Api註解用來標識一個API的基本信息,包括API的名稱、描述、作者等。這些信息將會出現在生成的文檔中。@Api註解可以在Controller類上或者方法上使用。

@Api(value = "UserController", tags = {"用戶管理"})
@RestController
@RequestMapping("/users")
public class UserController {

    @ApiOperation(value = "創建用戶", notes = "根據User對象創建用戶")
    @PostMapping("/add")
    public Result addUser(@RequestBody User user) {
        //...
    }
}

在上面的示例中,@Api註解用來標識UserController類是一個用來管理用戶的Controller,其中”用戶管理”是這個API的標籤。這個標籤會出現在生成的文檔中,方便用戶查找。

二、@ApiOperation

@ApiOperation註解用來描述一個API的具體操作,包括API的名稱、請求方式、請求路徑、請求參數、返回結果等。@ApiOperation註解只能在Controller的方法上使用。

@ApiOperation(value = "創建用戶", notes = "根據User對象創建用戶")
@PostMapping("/add")
public Result addUser(@Valid @RequestBody User user) {
    //...
}

在上面的示例中,@ApiOperation註解用來描述addUser方法的功能是創建一個用戶。其中,value屬性是API的名稱,notes屬性是API的詳細描述。@PostMapping註解用來控制請求的HTTP方法,”/add”是請求路徑。

三、@ApiParam

@ApiParam註解用來描述一個API的請求參數,包括參數名稱、類型、描述、是否必填等。@ApiParam註解只能在Controller的方法的參數上使用。

@ApiOperation(value = "創建用戶", notes = "根據User對象創建用戶")
@PostMapping("/add")
public Result addUser(@ApiParam(name = "user", value = "用戶實體", required = true) @Valid @RequestBody User user) {
    //...
}

在上面的示例中,@ApiParam註解用來描述請求參數user的具體信息。其中,name屬性是參數的名稱,value屬性是參數的描述,required屬性表示該參數是否必填。

四、@ApiResponses

@ApiResponses註解用來描述一個API的可能的返回結果,包括返回狀態碼、描述信息等。@ApiResponses註解只能在Controller的方法上使用。

@ApiOperation("查詢用戶")
@ApiResponses(value = {
        @ApiResponse(code = 200, message = "請求成功"),
        @ApiResponse(code = 401, message = "未授權"),
        @ApiResponse(code = 403, message = "禁止訪問"),
        @ApiResponse(code = 404, message = "請求路徑不存在"),
        @ApiResponse(code = 500, message = "服務器內部錯誤")
})
@GetMapping("/{id}")
public Result getUserById(@ApiParam(value = "用戶ID", required = true) @PathVariable Long id) {
    //...
}

在上面的示例中,@ApiResponses註解用來描述getUserById方法可能的返回結果。其中,@ApiResponse註解用來描述一個具體的返回結果,包括返回狀態碼和描述信息。

五、@ApiModelProperty

@ApiModelProperty註解用來描述一個API的返回結果,包括返回對象的名稱、類型、描述等。@ApiModelProperty註解只能在DTO類的屬性上使用。

@Data
public class UserDTO {
    @ApiModelProperty(value = "用戶ID", example = "1")
    private Long id;
    @ApiModelProperty(value = "用戶名", example = "Tom")
    private String username;
    @ApiModelProperty(value = "手機號碼", example = "13800138000")
    private String mobile;
}

在上面的示例中,@ApiModelProperty註解用來描述UserDTO類中屬性的具體信息。其中,value屬性是屬性的描述,example屬性是屬性的樣例,方便用戶理解。

六、小結

Swagger是一個非常實用的API文檔工具,在大型項目中大大簡化了API文檔的維護和管理。在使用Swagger時,合理使用註解能夠幫助我們更好地控制API的行為,生成清晰易懂的API文檔。

原創文章,作者:JZBRX,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/371681.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
JZBRX的頭像JZBRX
上一篇 2025-04-23 18:08
下一篇 2025-04-23 18:08

相關推薦

  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • Hibernate註解聯合主鍵 如何使用

    解答:Hibernate的註解方式可以用來定義聯合主鍵,使用@Embeddable和@EmbeddedId註解。 一、@Embeddable和@EmbeddedId註解 在Hibe…

    編程 2025-04-29
  • Python序列的常用操作

    Python序列是程序中的重要工具,在數據分析、機器學習、圖像處理等很多領域都有廣泛的應用。Python序列分為三種:列表(list)、元組(tuple)和字符串(string)。…

    編程 2025-04-28
  • 上傳多媒體文件的常用方法——uploadmediabyurl

    uploadmediabyurl是一個非常常用的方法,它允許我們將本地的多媒體文件上傳到微信服務器上。 一、uploadmediabyurl的基本使用方法 要使用uploadmed…

    編程 2025-04-27
  • Python數據看板開發:常用的包及其使用

    隨着數據分析和可視化的需求日漸增長,數據看板作為一種高效展示複雜數據信息的工具應運而生。Python語言作為一種面向數據分析和科學計算的編程語言,在數據看板開發中有着廣泛的應用。本…

    編程 2025-04-27
  • Python常用庫

    Python是一種高級編程語言,擁有豐富的第三方包和工具,常用庫涵蓋了各種應用場景。在此,我們將從以下幾個方面對Python常用庫進行闡述: 一、數據分析 數據分析是Python的…

    編程 2025-04-27
  • Python在運維中的常用庫

    Python被廣泛應用於各種Web應用程序、數據分析、自動運維、AI應用等領域。在運維領域,Python成為了最常用的編程語言之一。在本文中,我們將會討論Python運維中常用的庫…

    編程 2025-04-27
  • Python常用斷言函數用法介紹

    本文將詳細介紹Python中常用的斷言函數,讓大家了解這些函數的作用及使用方法,以便於進行代碼測試和調試。 一、assertEqual函數 1、assertEqual函數是Pyth…

    編程 2025-04-27
  • Python常用函數用法介紹

    Python是一種高級編程語言,擁有強大且易於使用的函數庫,可以輕鬆實現各種任務。本文將詳細介紹Python中常用的函數,包括字符串、數字、列表、字典、日期等方面的常見函數。 一、…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁盤中。在執行sync之前,所有的文件系統更新將不會立即寫入磁盤,而是先緩存在內存…

    編程 2025-04-25

發表回復

登錄後才能評論