整體說明
用於controller類上
注解 |
說明 |
@Api |
協議集描述 |
方法上
注解 |
說明 |
@ApiOperation |
- |
@ApiImplicitParams |
方法上 |
@ApiImplicitParam |
用在@ApiImplicitParams的方法里邊 |
@ApiResponses |
方法上 |
@ApiResponse |
用在 @ApiResponses里邊 |
返回對象類
注解 |
說明 |
@ApiModel |
用在返回對象類上 |
@ApiModelProperty |
用在出入參數對象的字段上 |
@Api
@Api:放在 請求的類上,與@Controller並列,說明的請求類的用下,如用戶登錄類,訂單類等。 tags="說明該類的作用" value="該參數沒什么意義,所以不需要配置"
@Api:放在 請求的類上,與@Controller並列,說明的請求類的用下,如用戶登錄類,訂單類等。
tags="說明該類的作用"
value="該參數沒什么意義,所以不需要配置"
示例:
@Api(tags="APP登錄授權")
@Controller
public class ApiLoginController {
}
@Api屬性配置:
與Controller注解並列使用。
屬性名稱 |
備注 |
value |
url的路徑值 |
tags |
如果設置這個值、value的值會被覆蓋 |
description |
對api資源的描述 |
basePath |
基本路徑 |
position |
如果配置多個Api 想改變顯示的順序位置 |
produces |
如, “application/json, application/xml” |
consumes |
如, “application/json, application/xml” |
protocols |
協議類型,如: http, https, ws, wss. |
authorizations |
高級特性認證時配置 |
hidden |
配置為true ,將在文檔中隱藏 |
@ApiOperation
@ApiOperation:"用在請求的方法上,說明方法的作用" value="說明方法的作用" notes="方法的備注說明"
@ApiOperation:"用在請求的方法上,說明方法的作用" value="說明方法的作用" notes="方法的備注說明"
@ApiImplicitParams、@ApiImplicitParam
@ApiImplicitParams:用在請求的方法上,包含一組參數說明
@ApiImplicitParam:對單個參數的說明 name:參數名 value:參數的漢字說明、解釋 required:參數是否必須傳 paramType:參數放在哪個地方 · header --> 請求參數的獲取:@RequestHeader · query --> 請求參數的獲取:
@RequestParam · path(用於restful接口)--> 請求參數的獲取:
@PathVariable · body(請求體)-->@RequestBody User user · form(不常用)dataType:參數類型,默認String,其它值dataType="Integer" defaultValue:參數的默認值
@ApiImplicitParams:用在請求的方法上,包含一組參數說明
@ApiImplicitParam:對單個參數的說明
name:參數名
value:參數的漢字說明、解釋
required:參數是否必須傳
paramType:參數放在哪個地方
· header --> 請求參數的獲取:@RequestHeader
· query --> 請求參數的獲取:@RequestParam
· path(用於restful接口)--> 請求參數的獲取:@PathVariable
· body(請求體)--> @RequestBody User user
· form(不常用)
dataType:參數類型,默認String,其它值dataType="Integer"
defaultValue:參數的默認值
示列:
@ApiOperation(value="用戶登錄",notes="手機號、密碼都是必輸項,年齡隨邊填,但必須是數字")
@ApiImplicitParams({
@ApiImplicitParam(name="mobile",value="手機號",required=true,paramType="form"),
@ApiImplicitParam(name="password",value="密碼",required=true,paramType="form"),
@ApiImplicitParam(name="age",value="年齡",required=true,paramType="form",dataType="Integer")
})
@PostMapping("/login")
public JsonResult login(@RequestParam String mobile, @RequestParam String password,
@RequestParam Integer age){
...
return JsonResult.ok(map);
}
@ApiResponses、@ApiResponse
@ApiResponses:方法返回對象的說明
@ApiResponse:每個參數的說明 code:數字,例如400 message:信息,例如"請求參數沒填好" response:拋出異常的類
@ApiResponses:方法返回對象的說明 @ApiResponse:每個參數的說明 code:數字,例如400 message:信息,例如"請求參數沒填好" response:拋出異常的類
示例:
@ApiOperation("獲取用戶信息")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "userId", dataType = "String", required = true, value = "用戶Id")
})
@ApiResponses({
@ApiResponse(code = 400, message = "請求參數沒填好"),
@ApiResponse(code = 404, message = "請求路徑沒有或頁面跳轉路徑不對")
})
@ResponseBody
@RequestMapping("/list")
public JsonResult list(@RequestParam String userId) {
...
return JsonResult.ok().put("page", pageUtil);
}
@ApiModel、@ApiModelProperty
@ApiModel:用於響應類上,表示一個返回響應數據的信息 (這種一般用在post創建的時候,使用@RequestBody這樣的場景, 請求參數無法使用 @ApiImplicitParam 注解進行描述的時候) @ApiModelProperty:用在屬性上,描述響應類的屬性
@ApiModel:用於響應類上,表示一個返回響應數據的信息
(這種一般用在post創建的時候,使用@RequestBody這樣的場景,
請求參數無法使用 @ApiImplicitParam 注解進行描述的時候)
@ApiModelProperty:用在屬性上,描述響應類的屬性
示例:
@ApiModel(description= "返回響應數據")
public class RestMessage implements Serializable{
@ApiModelProperty(value = "是否成功")
private boolean success=true;
@ApiModelProperty(value = "返回對象")
private Object data;
@ApiModelProperty(value = "錯誤編號")
private Integer errCode;
@ApiModelProperty(value = "錯誤信息")
private String message;
/* getter/setter */
}
http://localhost:8080/swagger-ui.html
轉載自:https://blog.csdn.net/xiaojin21cen/article/details/78654652