原文地址:https://blog.csdn.net/u013291972/article/details/72773011
一、swagger常用注解
1、與模型相關(guān)的注解
兩個(gè)注解:
@ApiModel:用在模型類上,對模型類做注釋;
@ApiModelProperty:用在屬性上,對屬性做注釋
2、與接口相關(guān)的注解
六個(gè)注解:
@Api:用在controller上,對controller進(jìn)行注釋;
@ApiOperation:用在API方法上,對該API做注釋,說明API的作用;
@ApiImplicitParams:用來包含API的一組參數(shù)注解,可以簡單的理解為參數(shù)注解的集合聲明;
@ApiImplicitParam:用在@ApiImplicitParams注解中,也可以單獨(dú)使用,說明一個(gè)請求參數(shù)的各個(gè)方面,該注解包含的常用選項(xiàng)有:
paramType:參數(shù)所放置的地方,包含query、header、path、body以及form,最常用的是前四個(gè)。
name:參數(shù)名;
dataType:參數(shù)類型,可以是基礎(chǔ)數(shù)據(jù)類型,也可以是一個(gè)class;
required:參數(shù)是否必須傳;
value:參數(shù)的注釋,說明參數(shù)的意義;
defaultValue:參數(shù)的默認(rèn)值;
@ApiResponses:通常用來包含接口的一組響應(yīng)注解,可以簡單的理解為響應(yīng)注解的集合聲明;
@ApiResponse:用在@ApiResponses中,一般用于表達(dá)一個(gè)錯(cuò)誤的響應(yīng)信息
code:即httpCode,例如400?
message:信息,例如"請求參數(shù)沒填好"
二、幾個(gè)注意點(diǎn):
為了在swagger-ui上看到輸出,至少需要兩個(gè)注解:@Api和@ApiOperation
即使只有一個(gè)@ApiResponse,也需要使用@ApiResponses包住
對于@ApiImplicitParam的paramType:query、form域中的值需要使用@RequestParam獲取, header域中的值需要使用@RequestHeader來獲取,path域中的值需要使用@PathVariable來獲取,body域中的值使用@RequestBody來獲取,否則可能出錯(cuò);而且如果paramType是body,name就不能是body,否則有問題,與官方文檔中的“If?paramType?is "body", the name should be "body"不符。