swagger2常用註解說明
說明:
1.這裡使用的版本:springfox-swagger2(2.4)springfox-swagger-ui (2.4)
2.這裡是說明常用註解的含義和基本用法(也就是說已經對swagger進行整合完成)
沒有整合的請參見
SpringBoot整合springfox-swagger2構建restful API
SpringMVC整合springfox-swagger2構建restful API
官網WIKI
常用註解:
- @Api()用於類;
表示標識這個類是swagger的資源
- @ApiOperation()
表示一個http請求的操作
- @ApiParam()用於方法,引數,欄位說明;
表示對引數的新增元資料(說明或是否必填等)
- @ApiModel()用於類
表示對類進行說明,用於引數用實體類接收
- @ApiModelProperty()用於方法,欄位
表示對model屬性的說明或者資料操作更改
- @ApiIgnore()用於類,方法,方法引數
表示這個方法或者類被忽略
- @ApiImplicitParam() 用於方法
表示單獨的請求引數
- @ApiImplicitParams()
具體使用舉例說明:
@Api()
用於類;表示標識這個類是swagger的資源
tags–表示說明
value–也是說明,可以使用tags替代
但是tags如果有多個值,會生成多個list
@Api(value="使用者controller",tags={"使用者操作介面"})
@RestController
public class UserController {
}
效果圖:
@ApiOperation() 用於方法;表示一個http請求的操作
value用於方法描述
notes用於提示內容
tags可以重新分組(視情況而用)
@ApiParam()
name–引數名
value–引數說明
required–是否必填
@Api(value="使用者controller",tags={"使用者操作介面"})
@RestController
public class UserController {
@ApiOperation(value="獲取使用者資訊",tags={"獲取使用者資訊copy"},notes="注意問題點")
@GetMapping("/getUserInfo")
public User getUserInfo(@ApiParam(name="id",value="使用者id",required=true) Long id,@ApiParam(name="username",value="使用者名稱") String username) {
// userService可忽略,是業務邏輯
User user = userService.getUserInfo();
return user;
}
}
效果圖:
@ApiModel()用於類 ;表示對類進行說明,用於引數用實體類接收
value–表示物件名
description–描述
都可省略
@ApiModelProperty()用於方法,欄位; 表示對model屬性的說明或者資料操作更改
value–欄位說明
name–重寫屬性名字
dataType–重寫屬性型別
required–是否必填
example–舉例說明
hidden–隱藏
@ApiModel(value="user物件",description="使用者物件user")
public class User implements Serializable{
private static final long serialVersionUID = 1L;
@ApiModelProperty(value="使用者名稱",name="username",example="xingguo")
private String username;
@ApiModelProperty(value="狀態",name="state",required=true)
private Integer state;
private String password;
private String nickName;
private Integer isDeleted;
@ApiModelProperty(value="id陣列",hidden=true)
private String[] ids;
private List<String> idList;
//省略get/set
}
@ApiOperation("更改使用者資訊")
@PostMapping("/updateUserInfo")
public int updateUserInfo(@RequestBody @ApiParam(name="使用者物件",value="傳入json格式",required=true) User user){
int num = userService.updateUserInfo(user);
return num;
}
效果圖:
@ApiIgnore()用於類或者方法上,可以不被swagger顯示在頁面上
比較簡單, 這裡不做舉例
@ApiImplicitParam() 用於方法
表示單獨的請求引數
@ApiImplicitParams() 用於方法,包含多個 @ApiImplicitParam
name–引數ming
value–引數說明
dataType–資料型別
paramType–引數型別
example–舉例說明
@ApiOperation("查詢測試")
@GetMapping("select")
//@ApiImplicitParam(name="name",value="使用者名稱",dataType="String", paramType = "query")
@ApiImplicitParams({
@ApiImplicitParam(name="name",value="使用者名稱",dataType="string", paramType = "query",example="xingguo"),
@ApiImplicitParam(name="id",value="使用者id",dataType="long", paramType = "query")})
public void select(){
}
效果圖: