關(guān)于Swagger注釋API的使用說(shuō)明
API詳細(xì)說(shuō)明
注釋匯總
| 作用范圍 | API | 使用位置 |
|---|---|---|
| 對(duì)象屬性 | @ApiModelProperty | 用在出入?yún)?shù)對(duì)象的字段上 |
| 協(xié)議集描述 | @Api | 用于controller類上 |
| 協(xié)議描述 | @ApiOperation | 用在controller的方法上 |
| Response集 | @ApiResponses | 用在controller的方法上 |
| Response | @ApiResponse | 用在 @ApiResponses里邊 |
| 非對(duì)象參數(shù)集 | @ApiImplicitParams | 用在controller的方法上 |
| 非對(duì)象參數(shù)描述 | @ApiImplicitParam | 用在@ApiImplicitParams的方法里邊 |
| 描述返回對(duì)象的意義 | @ApiModel | 用在返回對(duì)象類上 |
@RequestMapping此注解的推薦配置
valuemethodproduces
示例
@ApiOperation("信息軟刪除")
@ApiResponses({ @ApiResponse(code = CommonStatus.OK, message = "操作成功"),
@ApiResponse(code = CommonStatus.EXCEPTION, message = "服務(wù)器內(nèi)部異常"),
@ApiResponse(code = CommonStatus.FORBIDDEN, message = "權(quán)限不足") })
@ApiImplicitParams({ @ApiImplicitParam(paramType = "query", dataType = "Long", name = "id", value = "信息id", required = true) })
@RequestMapping(value = "/remove.json", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public RestfulProtocol remove(Long id) { @ApiModelProperty(value = "標(biāo)題")
private String title;@ApiImplicitParam
| 屬性 | 取值 | 作用 |
|---|---|---|
| paramType | 查詢參數(shù)類型 | |
| path | 以地址的形式提交數(shù)據(jù) | |
| query | 直接跟參數(shù)完成自動(dòng)映射賦值 | |
| body | 以流的形式提交 僅支持POST | |
| header | 參數(shù)在request headers 里邊提交 | |
| form | 以form表單的形式提交 僅支持POST | |
| dataType | 參數(shù)的數(shù)據(jù)類型 只作為標(biāo)志說(shuō)明,并沒(méi)有實(shí)際驗(yàn)證 | |
| Long | ||
| String | ||
| name | 接收參數(shù)名 | |
| value | 接收參數(shù)的意義描述 | |
| required | 參數(shù)是否必填 | |
| true | 必填 | |
| false | 非必填 | |
| defaultValue | 默認(rèn)值 |
paramType 示例詳解
path
@RequestMapping(value = "/findById1/{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@PathVariable(name = "id") Long idbody
@ApiImplicitParams({ @ApiImplicitParam(paramType = "body", dataType = "MessageParam", name = "param", value = "信息參數(shù)", required = true) })
@RequestMapping(value = "/findById3", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
@RequestBody MessageParam param提交的參數(shù)是這個(gè)對(duì)象的一個(gè)json,然后會(huì)自動(dòng)解析到對(duì)應(yīng)的字段上去,也可以通過(guò)流的形式接收當(dāng)前的請(qǐng)求數(shù)據(jù),但是這個(gè)和上面的接收方式僅能使用一個(gè)(用@RequestBody之后流就會(huì)關(guān)閉了)
接收對(duì)象傳參的例子
在POJO上增加
package com.zhongying.api.model.base;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ApiModel(value="對(duì)象模型")
public class DemoDoctor{
@ApiModelProperty(value="id" ,required=true)
private Integer id;
@ApiModelProperty(value="姓名" ,required=true)
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "DemoDoctor [id=" + id + ", name=" + name + "]";
}
}注意: 在后臺(tái)采用對(duì)象接收參數(shù)時(shí),Swagger自帶的工具采用的是JSON傳參, 測(cè)試時(shí)需要在參數(shù)上加入@RequestBody,正常運(yùn)行采用form或URL提交時(shí)候請(qǐng)刪除。
header
@ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "Long", name = "id", value = "信息id", required = true) })
String idstr = request.getHeader("id");
if (StringUtils.isNumeric(idstr)) {
id = Long.parseLong(idstr);
}Form
@ApiImplicitParams({ @ApiImplicitParam(paramType = "form", dataType = "Long", name = "id", value = "信息id", required = true) })
@RequestMapping(value = "/findById5", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring中實(shí)現(xiàn)定時(shí)調(diào)度的幾種方法
本篇文章主要介紹了Spring中實(shí)現(xiàn)定時(shí)調(diào)度示例,可以在無(wú)人值守的時(shí)候系統(tǒng)可以在某一時(shí)刻執(zhí)行某些特定的功能,有興趣的可以了解一下。2017-02-02
淺析java修飾符訪問(wèn)權(quán)限(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)
Java有四種訪問(wèn)權(quán)限,其中三種有訪問(wèn)權(quán)限修飾符,分別為private,public和protected,還有一種不帶任何修飾符,下面通過(guò)本文給大家簡(jiǎn)單介紹下java修飾符訪問(wèn)權(quán)限相關(guān)知識(shí),感興趣的朋友一起學(xué)習(xí)吧2017-04-04
Java如何讀寫Properties配置文件(Properties類)
這篇文章主要介紹了Java如何讀寫Properties配置文件(Properties類),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
詳解微信開(kāi)發(fā)之Author網(wǎng)頁(yè)授權(quán)
微信開(kāi)發(fā)中,經(jīng)常有這樣的需求:獲得用戶頭像、綁定微信號(hào)給用戶發(fā)信息,那么實(shí)現(xiàn)這些的前提就是授權(quán)!本文對(duì)此進(jìn)行系統(tǒng)介紹,需要的朋友一起來(lái)看下吧2016-12-12
解決SpringBoot ClassPathResource的大坑(FileNotFoundException)
這篇文章主要介紹了解決SpringBoot ClassPathResource的大坑(FileNotFoundException),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
spring boot空屬性賦值問(wèn)題與aspect日志實(shí)現(xiàn)方法
這篇文章主要介紹了spring boot空屬性賦值問(wèn)題與aspect日志實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08

