Swagger2常用注解說明


一、@Api

用在請求的類上,表示對類的說明

常用參數:

tags="說明該類的作用,非空時將覆蓋value的值"
value="描述類的作用"
description           對api資源的描述,在1.5版本后不再支持
basePath              基本路徑可以不配置,在1.5版本后不再支持
position              如果配置多個Api 想改變顯示的順序位置,在1.5版本后不再支持
produces              設置MIME類型列表(output),例:"application/json, application/xml",默認為空
consumes              設置MIME類型列表(input),例:"application/json, application/xml",默認為空
protocols             設置特定協議,例:http, https, ws, wss。
authorizations        獲取授權列表(安全聲明),如果未設置,則返回一個空的授權值。
hidden                默認為false, 配置為true 將在文檔中隱藏

示例:

@Api(tags="登錄請求")
@Controller
@RequestMapping(value="/highPregnant")
public class LoginController {}

二、@ApiOperation

用在請求的方法上,說明方法的用途、作用

常用參數:

value="說明方法的用途、作用"
notes="方法的備注說明"
tags                操作標簽,非空時將覆蓋value的值
response            響應類型(即返回對象)
responseContainer   聲明包裝的響應容器(返回對象類型)。有效值為 "List", "Set" or "Map"。
responseReference  指定對響應類型的引用。將覆蓋任何指定的response()類
httpMethod        指定HTTP方法,"GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS" and "PATCH"
position            如果配置多個Api 想改變顯示的順序位置,在1.5版本后不再支持
nickname         第三方工具唯一標識,默認為空
produces            設置MIME類型列表(output),例:"application/json, application/xml",默認為空
consumes            設置MIME類型列表(input),例:"application/json, application/xml",默認為空
protocols           設置特定協議,例:http, https, ws, wss。
authorizations      獲取授權列表(安全聲明),如果未設置,則返回一個空的授權值。
hidden              默認為false, 配置為true 將在文檔中隱藏
responseHeaders       響應頭列表
code            響應的HTTP狀態代碼。默認 200
extensions       擴展屬性列表數組

示例:

@ResponseBody
@PostMapping(value="/login")
@ApiOperation(value = "登錄檢測", notes="根據用戶名、密碼判斷該用戶是否存在")
public UserModel login(@RequestParam(value = "name", required = false) String account, @RequestParam(value = "pass", required = false) String password){}

三、@ApiImplicitParams

用在請求的方法上,表示一組參數說明

@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一個請求參數的各個方面

常用參數:

name:參數名,參數名稱可以覆蓋方法參數名稱,路徑參數必須與方法參數一致
value:參數的漢字說明、解釋
required:參數是否必須傳,默認為false [路徑參數必填]
paramType:參數放在哪個地方
    · header --> 請求參數的獲取:@RequestHeader
    · query --> 請求參數的獲取:@RequestParam
    · path(用於restful接口)--> 請求參數的獲取:@PathVariable
    · body(不常用)
    · form(不常用)
dataType:參數類型,默認String,其它值dataType="Integer"
defaultValue:參數的默認值
其他參數:

allowableValues    限制參數的可接受值。1.以逗號分隔的列表   2、范圍值  3、設置最小值/最大值
access             允許從API文檔中過濾參數。
allowMultiple      指定參數是否可以通過具有多個事件接受多個值,默認為false
example            單個示例
examples         參數示例。僅適用於BodyParameters

示例:

@ResponseBody
@PostMapping(value="/login")
@ApiOperation(value = "登錄檢測", notes="根據用戶名、密碼判斷該用戶是否存在")
@ApiImplicitParams({
      @ApiImplicitParam(name = "name", value = "用戶名", required = false, paramType = "query", dataType = "String"),
      @ApiImplicitParam(name = "pass", value = "密碼", required = false, paramType = "query", dataType = "String") 
})
public UserModel login(@RequestParam(value = "name", required = false) String account,
                @RequestParam(value = "pass", required = false) String password){}

四、@ApiModel

用在請求的類上,表示對類的說明

用於響應類上,表示一個返回響應數據的信息(這種一般用在post創建的時候,使用@RequestBody這樣的場景,請求參數無法使用@ApiImplicitParam注解進行描述的時候)

@ApiModelProperty:用在屬性上,描述響應類的屬性

常用參數:

value                  此屬性的簡要說明。
name                     允許覆蓋屬性名稱
其他參數:

allowableValues          限制參數的可接受值。1.以逗號分隔的列表   2、范圍值  3、設置最小值/最大值
access             允許從API文檔中過濾屬性。
notes              目前尚未使用。
dataType            參數的數據類型。可以是類名或者參數名,會覆蓋類的屬性名稱。
required            參數是否必傳,默認為false
position            允許在類中對屬性進行排序。默認為0
hidden             允許在Swagger模型定義中隱藏該屬性。
example                屬性的示例。
readOnly            將屬性設定為只讀。
reference           指定對相應類型定義的引用,覆蓋指定的任何參數值

示例:

@ApiModel(value="用戶登錄信息", description="用於判斷用戶是否存在")
public class UserModel implements Serializable{
    private static final long serialVersionUID = 1L;

    /**用戶名 */ 
    @ApiModelProperty(value="用戶名") 
    private String account;

    /**密碼 */ 
    @ApiModelProperty(value="密碼") 
    private String password;
}

五、@ApiResponses

用在請求的方法上,表示一組響應

@ApiResponse:用在@ApiResponses中,一般用於表達一個錯誤的響應信息

常用參數:

code:數字,例如400
message:信息,例如"請求參數沒填好"
response:拋出異常的類

示例:

@ResponseBody
@PostMapping(value="/update/{id}")
@ApiOperation(value = "修改用戶信息",notes = "打開頁面並修改指定用戶信息")
@ApiResponses({
    @ApiResponse(code=400,message="請求參數沒填好"),
    @ApiResponse(code=404,message="請求路徑沒有或頁面跳轉路徑不對")
})
public JsonResult update(@PathVariable String id, UserModel model){}

六、@ApiParam

用在請求方法中,描述參數信息

常用參數:

name:參數名稱,參數名稱可以覆蓋方法參數名稱,路徑參數必須與方法參數一致
value:參數的簡要說明。
defaultValue:參數默認值
required           屬性是否必填,默認為false [路徑參數必須填]
其他參數:

allowableValues    限制參數的可接受值。1.以逗號分隔的列表   2、范圍值  3、設置最小值/最大值
access             允許從API文檔中過濾參數。
allowMultiple      指定參數是否可以通過具有多個事件接受多個值,默認為false
hidden             隱藏參數列表中的參數。
example            單個示例
examples         參數示例。僅適用於BodyParameters

示例:

@ResponseBody
@PostMapping(value="/login")
@ApiOperation(value = "登錄檢測", notes="根據用戶名、密碼判斷該用戶是否存在")
public UserModel login(@ApiParam(name = "name", value = "用戶名", required = false) @RequestParam(value = "name", required = false) String account,@ApiParam(name = "pass", value = "密碼", required = false) @RequestParam(value = "pass", required = false) String password){}

//或以實體類為參數:
@ResponseBody @PostMapping(value="/login") @ApiOperation(value = "登錄檢測", notes="根據用戶名、密碼判斷該用戶是否存在") public UserModel login(@ApiParam(name = "model", value = "用戶信息Model") UserModel model){}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM