Swagger2 的具体使用方法,参见另一篇文章Swagger的使用方法和简单介绍:【Swagger用法】Swagger的使用方法、配置相关内容和简单介绍_No8g攻城狮的博客-CSDN博客
@Api:用在请求的类上,表示对类的说明
- tags="说明该类的作用,可以在UI界面上看到的注解"
- value="该参数没什么意义,在UI界面上也看到,所以不需要配置"
@ApiOperation:用在请求的方法上,说明方法的用途、作用
- value="说明方法的用途、作用"
- notes="方法的备注说明
示例如下:
@Api(tags = "用户管理") @RestController @RequestMapping(value = "/user") public class UserController { @Autowired private UserServiceFacade userServiceFacade; @ApiOperation("添加用户") @PostMapping(value = "add") public CommResponse<?> addUser(@RequestHeader(name = "accessToken")String accessToken,@RequestBody UserAddRequest userAddRequest,HttpServletRequest request){ userAddRequest.setAccessToken(accessToken); userServiceFacade.addUser(userAddRequest); return CommResponse.ok(); } }
@ApiImplicitParams:用在请求的方法上,表示一组参数说明
@ApiImplicitParam:用在 @ApiImplicitParams 注解中,指定一个请求参数的各个方面
- name:参数名
- value:参数的汉字说明、解释
- required:参数是否必须传,默认false
- paramType:参数放在哪个地方,查询参数类型,这里有几种形式:
- header --> 请求参数的获取:@RequestHeader,参数在 request headers 里边提交
- query --> 请求参数的获取:@RequestParam,直接跟参数,完成自动映射赋值
- path(用于 restful 接口)--> 请求参数的获取:@PathVariable,以地址的形式提交数据
- body(不常用)--> 以流的形式提交 仅支持 POST
- form(不常用)--> 以 form 表单的形式提交 仅支持 POST
- dataType:参数类型,默认String,其它值 dataType="Integer"
- defaultValue:参数的默认值
@Api(tags = "用户管理") @RestController @RequestMapping(value = "/user") public class UserController { @Autowired private UserServiceFacade userServiceFacade; @ApiOperation("修改密码") @ApiImplicitParams({ @ApiImplicitParam(name = "username",value = "账号" , dataType = "String", paramType = "query"), @ApiImplicitParam(name = "oldPassword",value = "旧密码" , dataType = "String", paramType = "query"), @ApiImplicitParam(name = "newPassword",value = "新密码" , dataType = "String", paramType = "query") }) @GetMapping(value = "updatePassword") public CommResponse<?> updatePassword(@RequestHeader(name = "accessToken")String accessToken,String username,String oldPassword,String newPassword){ userServiceFacade.updatePassword(accessToken,username,oldPassword,newPassword); return CommResponse.ok(); } }
@ApiResponses:用在请求的方法上,表示一组响应
@ApiResponse:用在 @ApiResponses 中,一般用于表达一个错误的响应信息
- code:数字,例如400
- message:信息,例如"请求参数没填好"
- response:抛出异常的类
示例如下:
@ApiOperation(value = "select1请求",notes = "多个参数,多种的查询参数类型") @ApiResponses({ @ApiResponse(code=400,message="请求参数没填好"), @ApiResponse(code=404,message="请求路径没有或页面跳转路径不对") })
@ApiModel:用于响应类上,表示一个返回响应数据的信息
- (这种一般用在 post 创建的时候,使用 @RequestBody 这样的场景,
- 请求参数无法使用 @ApiImplicitParam 注解进行描述的时候)
- @ApiModelProperty:用在属性上,描述响应类的属性
示例如下:
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; @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 */ }
完结!