1. 程式人生 > >Swagger2常用註解及其說明

Swagger2常用註解及其說明

Api

  用在Controller中,標記一個Controller作為swagger的文件資源

屬性名稱 說明
value Controller的註解
description 對api資源的描述
hidden 配置為true 將在文件中隱藏

  使用方法:

@Api(value = "登入服務",description = "使用者登入相關介面")
@RestController("loginControllerLayui")
@RequestMapping("/login")
public class LoginController
{
}

ApiOperation

  該註解用在Controller的方法中,用於註解介面

屬性名稱 說明
value 介面的名稱
notes 介面的註釋
response 介面的返回型別,比如說:response = String.class
hidden 配置為true 將在文件中隱藏

  使用方法:

    @ApiOperation(value = "獲取驗證碼圖片",notes = "每呼叫一次,就會隨機生成一張驗證碼圖片",response = String.class)
    @GetMapping
("/verifyCode.img") public String getVerifyCode(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{ }

ApiParam

  該註解用在方法的引數中。

屬性名稱 說明
name 引數名稱
value 引數值
required 是否必須,預設false
defaultValue 引數預設值
type 引數型別
hidden 隱藏該引數

  使用方法:

    @ApiOperation(value = "新增許可權",notes = "插入許可權",response = JsonData.class)
    @PostMapping("/insertAcl.json")
    public JsonData insertAcl(@ApiParam(name = "param",value = "實體類AclParam",required = true) AclParam param){
}

ApiResponses/ApiResponse

  該註解用在Controller的方法中,用於註解方法的返回狀態。

屬性名稱 說明
code http的狀態碼
message 狀態的描述資訊
response 狀態相應,預設響應類 Void

  使用方法:

    @ApiOperation(value = "選單",notes = "進入選單介面",nickname = "選單介面")
    @ApiResponses({
            @ApiResponse(code = 200,message = "成功!"),
            @ApiResponse(code = 401,message = "未授權!"),
            @ApiResponse(code = 404,message = "頁面未找到!"),
            @ApiResponse(code = 403,message = "出錯了!")
    })
    @GetMapping("/aclModule.page")
    public ModelAndView aclModule(Model model){
    }

ApiModel

  該註解用在實體類中。

屬性名稱 說明
value 實體類名稱
description 實體類描述
parent 整合的父類,預設為Void.class
subTypes 子類,預設為{}
reference 依賴,預設為“”

  使用方法:

@ApiModel(value = "JsonData",description = "返回的資料型別")
public class JsonData {
}

ApiModelProperty

  該註解用在實體類的欄位中。

屬性名稱 說明
name 屬性名稱
value 屬性值
notes 屬性註釋
dataType 資料型別,預設為“”
required 是否必須,預設為false
hidden 是否隱藏該欄位,預設為false
readOnly 是否只讀,預設false
reference 依賴,,預設“”
allowEmptyValue 是否允許空值,預設為false
allowableValues 允許值,預設為“”

  使用方法:

    //返回狀態資訊
    @ApiModelProperty(name = "code",value = "狀態code",notes = "返回資訊的狀態")
    private int code;
    //返回攜帶的資訊內容
    @ApiModelProperty(name = "msg",value = "狀態資訊",notes = "返回資訊的內容")
    private String msg = "";
    //返回資訊的總條數
    @ApiModelProperty(name = "count",value = "查詢數量",notes = "返回資訊的條數")
    private int count;
    //返回物件
    @ApiModelProperty(name = "data",value = "查詢資料",notes = "返回資料的內容")
    private Object data;

ApiImplicitParams/ApiImplicitParam

  該註解用在Controller的方法中,同ApiParam的作用相同,但是比較建議使用ApiParam。

屬性名稱 說明
name 引數名稱
value 引數值
defaultValue 引數預設值
required 是否必須
allowMultiple 是否允許重複
dataType 資料型別
paramType 引數型別

  使用方法:

    @ApiOperation(value = "建立使用者",notes = "根據User物件建立使用者")
    @ApiImplicitParam(name = "user",value = "使用者詳細實體user")
    @RequestMapping(value="/", method=RequestMethod.POST)
    public String postUser(@ModelAttribute User user){
    }