作用范围 API 使用位置
对象属性 @ApiModelProperty 用在出入参数对象的字段上
协议集描述 @Api 用于controller类上
协议描述 @ApiOperation 用在controller的方法上
Response集 @ApiResponses 用在controller的方法上
Response @ApiResponse 用在 @ApiResponses里边
非对象参数集 @ApiImplicitParams 用在controller的方法上
非对象参数描述 @ApiImplicitParam 用在@ApiImplicitParams的方法里边
描述返回对象的意义 @ApiModel 用在返回对象类上

用于controller类上:

注解 说明
@ApiOperation 方法的说明
@ApiImplicitParams、@ApiImplicitParam 方法的参数的说明;@ApiImplicitParams 用于指定单个参数的说明

用于方法上面(返回参数或对象的说明):

注解 说明
@ApiModel 用在JavaBean类上,说明JavaBean的 用途
@ApiModelProperty 用在JavaBean类的属性上面,说明此属性的的含议
  • 标识这个类是 swagger 的资源
  • 用于 上(主要是放在 请求 的类上)
  • @Controller @RestController 并列
  • 说明 该类的作用 ,,如用户模块,订单类等
  • @Api(value = "说明(该参数没什么意义,所以不需要配置)", tags = {"标签"})
    
  • value可以用tags代替,该参数没什么意义,所以不需要配置
  • tags如果有多个值,会生成多个list
  • @Api 其他属性配置:(该部分copy自这里
  • 属性名称备注
    valueurl的路径值
    tags如果设置这个值、value的值会被覆盖
    description对api资源的描述
    basePath基本路径
    position如果配置多个Api 想改变显示的顺序位置
    produces如, “application/json, application/xml”
    consumes如, “application/json, application/xml”
    protocols协议类型,如: http, https, ws, wss.
    authorizations高级特性认证时配置
    hidden配置为true ,将在文档中隐藏
    @Api(value = "品类表", tags = {"category"})
    @RestController
    @RequestMapping("/category")
    public class CategoryController {
    

    @ApiOperation

  • 用在方法
  • 表示一个http请求的操作,说明方法的作用
  • @ApiOperation(value = "接口说明(方法的作用)", httpMethod = "接口请求方式", response = 接口返回参数类型.class, notes = "接口发布说明(方法的备注说明)", tags = {""});
    

    tags如果有多个值,会生成多个list

    @ApiOperation(value = "获取完整品类信息list", httpMethod = "GET", response = Category.class, notes = "返回的是所有完整的品类信息", tags = {"1","2"})
    

    该部分copy自这里

    @ApiImplicitParams:用在请求的方法上,包含一组参数说明
    	@ApiImplicitParam:对单个参数的说明	    
    	    name:参数名
    	    value:参数的说明、描述
    	    required:参数是否必须必填
    	    paramType:参数放在哪个地方
    	        · query --> 请求参数的获取:@RequestParam
    	        · header --> 请求参数的获取:@RequestHeader	      
    	        · path(用于restful接口)--> 请求参数的获取:@PathVariable
    	        · body(请求体)-->  @RequestBody User user
    	        · form(普通表单提交)	   
    	    dataType:参数类型,默认String,其它值dataType="Integer"	   
    	    defaultValue:参数的默认值
    

    @ApiParam

  • 用于方法
  • 参数字段的说明
  • @ApiParam(required = false, name = "参数名称", value = "参数具体描述")
    

    required:是否必须参数

  • false
  • @ApiOperation(value = "新增品类", httpMethod = "POST", notes = "必须,传入json格式数据", tags = {"category","insert"})
    @PostMapping("addNewCategory")
    public ResultVO addNewCategory(@ApiParam(required = true, name = "json", value = "json格式,必须,非空") @RequestBody Category category) {
        return ResultVO.ok(categoryService.addNewCategory(category));
    

    @ApiModel

  • 表示对进行说明、描述
  • @ApiModel(value = "对象名", description = "描述")
    

    valuedescription可以省略

    @ApiModel(value = "salesHistory对象", description = "销售记录表salesHistory")
    public class SalesHistory {
    

    @ApiModel的用途有2个:

  • 当请求数据描述,即 @RequestBody 时, 用于封装请求(包括数据的各种校验)数据;
  • 当响应值是对象时,即 @ResponseBody 时,用于返回值对象的描述。
  • 当请求数据描述时, @RequestBody 时的使用
  • @ApiModel(description = "用户登录")
    public class UserLoginVO implements Serializable {
    	private static final long serialVersionUID = 1L;
    	@ApiModelProperty(value = "用户名",required=true)	
    	private String username;
    	@ApiModelProperty(value = "密码",required=true)	
    	private String password;
    	// getter/setter省略
    
    @Api(tags="用户模块")
    @Controller
    public class UserController {
    	@ApiOperation(value = "用户登录", notes = "")	
    	@PostMapping(value = "/login")
    	public R login(@RequestBody UserLoginVO userLoginVO) {
    		User user=userSerivce.login(userLoginVO);
    		return R.okData(user);
    
  • @ApiModelProperty:用在JavaBean类的属性上面,说明属性的含义
  • @ApiModel(description= "返回响应数据")
    public class RestMessage implements Serializable{
    	@ApiModelProperty(value = "是否成功",required=true)
    	private boolean success=true;	
    	@ApiModelProperty(value = "错误码")
    	private Integer errCode;
    	@ApiModelProperty(value = "提示信息")
    	private String message;
        @ApiModelProperty(value = "数据")
    	private Object data;
    	/* getter/setter 略*/
    

    @ApiModelProperty

  • 用于方法
  • 参数字段的描述
  • @ApiModelProperty(required = false, value = "字段说明", name = "重写 属性名称", dataType = "重写 属性类型", example = "举例说明", hidden = false)
    

    required:是否必须参数

    @ApiModel(value = "salesHistory对象", description = "销售记录表salesHistory")
    public class SalesHistory {
        @ApiModelProperty(required = true, value = "销售记录id", name = "id", example = "zu_xt_202101011324")
        private Long id;
        @ApiModelProperty(required=true, value="状态", name="state")
        private Integer state;
    

    @ApiIgnore

  • 用于方法方法
  • 可以被swagger不显示在页面上
  • 没啥好演示的,自个实践……

    @ApiImplicitParam

    单个参数的说明

    作用范围:非对象参数描述

    用于方法(用在controller方法上)

    表示单独的请求参数

    属性取值作用
    paramType查询参数类型
    path以地址的形式提交数据,(用于restful接口--> 请求参数的获取:@PathVariable
    query直接跟参数完成自动映射赋值
    body(请求体),以流的形式提交,仅支持POST
    header参数在request headers 里边提交
    form(普通表单提交),以form表单的形式提交,仅支持POST
    dataType参数的数据类型 只作为标志说明,并没有实际验证
    String默认
    Long
    Integer
    name参数名
    value参数的意义、描述
    required参数是否必填
    true必填
    false非必填
    defaultValue参数的默认值
    @ApiOperation("查询测试")
    @GetMapping("select")
    @ApiImplicitParam(name="name",value="用户名",dataType="String", paramType = "query")
    public void select(){
    

    @ApiImplicitParams

    作用范围:非对象参数集

    用于方法(用在controller方法上)

    包含一组参数说明,表示多个单独的请求参数,即包含多个 @ApiImplicitParam

      @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(){
    

    @ApiResponse

  • 每个参数的说明
  • code:数字,例如400
  • message:信息,例如"请求参数没填好"
  • response:抛出异常的类
  • 作用范围:Response
  • 用在 @ApiResponses
  • @ApiResponses

    方法返回对象的说明

    作用范围:Response集

    用在controller方法

    即包含多个@ApiResponse

    实例(例子来源于网络)

    @Api(tags="用户模块")
    @Controller
    public class UserController {
    	@ApiOperation("获取用户信息")
    	@ApiImplicitParams({
    		@ApiImplicitParam(paramType="query", name="userId", dataType="String", required=true, value="用户Id")
    	@ApiResponses({
    		@ApiResponse(code = 200, message = "请求成功"),
    		@ApiResponse(code = 400, message = "请求参数没填好"),
    		@ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")
    	@ResponseBody
    	@RequestMapping("/list")
    	public JsonResult list(@RequestParam String userId) {
    		return JsonResult.ok().put("page", pageUtil);
    复制代码
    分类:
    后端
    标签: