swagger注解

Swagger常用注解

@Api
  • 作用于Controller类
  • 标识swagger识别的类
属性功能说明
value
tags分组(说明该类的作用,tags的值会覆盖value的值)
description描述
basePath基本路径
positionapi显示位置顺序
consumes例如:application/json, application/xml
protocols协议类型,如:http,https,ws,wss
authorizations高级特征认证配置
hidden是否隐藏

使用示例

@Controller
@Api(tags="订单模块")
public class OrderController {
}

@ApiIngore
  • 作用于Controller类

  • 屏蔽显示某个controller,开启后在swagger上将不会显示

属性功能说明
value

@ApiOperation
  • 作用于Controller类中的方法
  • 标识swagger识别的方法
属性功能说明
value中文描述
tags分组
notes方法的备注说明
positionapi显示位置顺序
produces例如:application/json,application/xml
consumes例如:application/json, application/xml
protocols例如:http, https, ws, wss.
authorizations高级特性认证
hidden配置为true 将在文档中隐藏
response返回的对象
responseContainer可选参数:List、Set、Map,其他无效
httpMethodGET、HEAD、POST、PUT、DELETE、OPTIONS、PATCH
code状态码,默认为200
extensions扩展属性
@ApiImplicitParam
  • 作用于方法或方法入参
  • 修饰方法中的入参参数
属性功能说明
name英文描述
value中文描述
dataType参数数据类型(默认String),可传基本类型、类、泛型类等。
paramType参数传递形式,如body、header等
defaultValue参数的默认值
required是否必须
  • dataType

    基本类型、类按照正常来赋值,则定义泛型类应该按照如下格式类赋值:

    dataType = “demo<<ArrayList<<demo1>>>>

    对应类为demo<demo1[]>

  • paramType

    • path:以地址的形式提交数据(用于restful接口)
    • query:直接跟参数完成自动映射赋值
    • body:以流的形式提交,支持POST
    • header:参数在request headers中提交
    • from:以form表单的形式提交,仅支持POST

    注意:paramType指定的参数获取方式必须与spring指定的方法参数获取值方式必须一致,否则影响参数的接收。

    @ApiImplicitParam(ParamType="header",...)
    public String get(@RequestParam Integer id){
        /*
        以上情况swagger注解和spring注解分别制定了不同的参数接收方式,这会到时参数接收不到
        */
    }
    

path

@RequestMapping(value = "/urlAddress/{id}", method = RequestMethod.GET)
public void getID_1(@PathVariable(name = "id") Long id){
}

body

@ApiImplicitParam(paramType = "body", dataType = "ActDeploymentUpdQry", name = "actDeploymentUpdQry", value = "参数名称", required = true)
@ReqestMapping(value="/urlAddress", method=REquestMethod.POST)
public Result<Boolean> updActDeployment(@RequestBody ActDeploymentUpdQry actDeploymentUpdQry){
    return new Result<>();
}

header

@ApiImplicitParam(paramType = "header", dataType = "Long", name = "id", value = "参数名称", required = true)
public void getID_2(){
    Long id = StringUtils.isNumeric(request.getHesaders("id"));
}

form

@ApiImplicitParam(paramType = "form", dataType = "Long", name = "id", value = "参数名称", required = true)
@RequestMapping(value = "/urlAddress", method = RequestMethod.POST)
//TODO:???
@ApiImplicitParams
  • 作用于方法或方法入参
  • 修饰方法中的入参参数
属性功能说明
@ApiImplicitParam

使用示例

@ApiOperation(value="用户登录",notes="随边说点啥")
@ApiImplicitParams({
	@ApiImplicitParam(name="mobile",value="手机号",required=true,paramType="form"),
    @ApiImplicitParam(name="password",value="密码",required=true,paramType="form"),
    @ApiImplicitParam(name="age",value="年龄",paramType="form",dataType="Integer")})
    @PostMapping("/login")
    public JsonResult login(@RequestParam String mobile, @RequestParam String password,@RequestParam Integer age){
        //...
        return JsonResult.ok(map);
    }

@ApiResponse
  • 作用于方法或方法入参
  • 修饰方法的返回值
属性功能说明
code方法返回值状态码
message方法返回值信息
class方法返回class
response抛出的异常类
@ApiResponses
  • 作用于方法或方法入参
  • 修饰方法的返回值
属性功能说明
@ApiResponseApiResponse的数组集合

使用示例

@ApiOperation("获取用户信息")
@ApiImplicitParam(paramType="query", name="userId", dataType="String",value="用户Id")
@ApiResponses({
    @ApiResponse(code = 400, message = "请求参数没填好"),
    @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) 
@RequestMapping("/list",method=RequestMethod.POST)
    public JsonResult list(@RequestBody String userId) {
        ...
        return JsonResult.ok().put("page", pageUtil);
    }

@ApiParam
  • 作用于方法的入参
  • 映射方法的入参
属性功能说明
name名称
value简单描述
defaultValue参数值默认值
allowableValues可接收参数限制
required是否为必传参数
access参数过滤,参阅:io.swagger.core.filter.SwaggerSpecFilter
allowMultiple指定参数是否可以通过多次出现来接收多个值
hidden隐藏参数列表中的参数
example非请求体(body)类型的单个参数示例
examples参数示例,仅适用于请求体类型的请求

@ApiModel
  • 作用于JavaBean类
  • 标识一个类为model
属性功能说明
value
description描述
@ApiModelProperty
  • 作用与JavaBean类的属性
  • 标识一个JavaBean类的属性
属性功能说明
value
name名字
required是否必须(默认false)

使用标识

@ApiModel(descriptoin="应用类型实体数据")
public class ApplyTypeEntity extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 5673951458714866692L;
    @ApiModelProperty(value = "申请类型ID", name = "applyTypeId")
    private String applyTypeId;
    @ApiModelProperty(value = "上级申请类型ID", name = "applyTypeParentId")
    private String applyTypeParentId;
    @ApiModelProperty(value = "申请类型编码(字符串命名,自动生成)", name = "typeCode")
    private String typeCode;
    @ApiModelProperty(value = "申请类型名字(中文命名)", name = "typeName")
    private String typeName;
    @ApiModelProperty(value = "申请类型的备注信息", name = "remark")
    private String remark;
    @ApiModelProperty(value = "启用标志位,开启:Y,关闭:N", name = "useable")
    private String useable;
    /*省略get和set方法*/
}

网络资源

https://blog.csdn.net/xupeng874395012/article/details/68946676

https://my.oschina.net/dlam/blog/808315

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Swagger注解是一种用于编写API文档的注解,可以帮助开发人员设计、构建、记录和使用RESTful Web服务。以下是常用的Swagger注解及其作用: 1. @Api:用于类上,表示标识这个类是swagger的资源。 2. @ApiOperation:用于方法上,表示一个http请求的操作。 3. @ApiParam:用于参数上,用来标明参数信息。 4. @ApiModel:用于类上,表示对类进行说明,用于参数用实体类接收。 5. @ApiModelProperty:用于属性上,表示对model属性的说明。 6. @ApiIgnore:用于类或者方法上,表示这个类或者方法不被swagger处理。 7. @ApiError:用于方法上,表示一个错误的响应信息。 8. @ApiImplicitParam:用于方法上,表示单独的请求参数。 9. @ApiImplicitParams:用于方法上,包含多个 @ApiImplicitParam。 10. @ApiResponses:用于方法上,表示一个请求的响应信息。 下面是一个使用Swagger注解的示例: ```java @RestController @RequestMapping("/users") @Api(value = "用户管理", tags = "用户管理") public class UserController { @Autowired private UserService userService; @ApiOperation(value = "获取用户列表", notes = "获取所有用户列表") @GetMapping("") public List<User> getUserList() { return userService.getUserList(); } @ApiOperation(value = "创建用户", notes = "根据User对象创建用户") @ApiImplicitParam(name = "user", value = "用户实体user", required = true, dataType = "User") @PostMapping("") public String postUser(@RequestBody User user) { userService.postUser(user); return "success"; } @ApiOperation(value = "更新用户", notes = "根据User对象更新用户") @ApiImplicitParam(name = "user", value = "用户实体user", required = true, dataType = "User") @PutMapping("/{id}") public String putUser(@PathVariable Long id, @RequestBody User user) { userService.putUser(id, user); return "success"; } @ApiOperation(value = "删除用户", notes = "根据id删除用户") @ApiImplicitParam(name = "id", value = "用户id", required = true, dataType = "Long") @DeleteMapping("/{id}") public String deleteUser(@PathVariable Long id) { userService.deleteUser(id); return "success"; } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值