首页 > 其他分享 >swagger2的常用注解,传递参数的注意使用方法

swagger2的常用注解,传递参数的注意使用方法

时间:2022-11-24 21:01:36浏览次数:66  
标签:ApiImplicitParam name value private 用于 swagger2 注解 参数


背景介绍:

刚开始的时候,在controller层使用@RequestParam的时候,发现这个参数是必须要输入值的,但是我们有时候必须查询的时候允许参数为空,使用这个注解就不行了。

在集成了swagger2后,找了半天的原因,发现使用@ApiImplicitParam这个注解可以解决这个问题。

swagger2的常用注解,传递参数的注意使用方法_spring

 

对应下面的参数。

所以我们可以使用这个注解来解决我们所遇到的参考为空的问题。

而且已经集成了swagger2,所以我们尽量来使用这个注解吧。

 

 

说明: 
1.这里使用的版本:springfox-swagger2(2.4)springfox-swagger-ui (2.4) 
2.这里是说明常用注解的含义和基本用法(也就是说已经对swagger进行集成完成) 
没有集成的请参见 
​​SpringBoot集成springfox-swagger2构建restful API​​ 
​​SpringMVC集成springfox-swagger2构建restful API​​ 
​​​官网WIKI​​​ 
常用注解: 
@Api()用于类; 
表示标识这个类是swagger的资源 
@ApiOperation()用于方法; 
表示一个http请求的操作 
@ApiParam()用于方法,参数,字段说明; 
表示对参数的添加元数据(说明或是否必填等) 
@ApiModel()用于类 
表示对类进行说明,用于参数用实体类接收 
@ApiModelProperty()用于方法,字段 
表示对model属性的说明或者数据操作更改 
@ApiIgnore()用于类,方法,方法参数 
表示这个方法或者类被忽略 
@ApiImplicitParam() 用于方法 
表示单独的请求参数 
@ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam

具体使用举例说明: 
@Api() 
用于类;表示标识这个类是swagger的资源 
tags–表示说明 
value–也是说明,可以使用tags替代 
但是tags如果有多个值,会生成多个list

@Api(value="用户controller",tags={"用户操作接口"})
@RestController
public class UserController {

}

 

效果图: 

swagger2的常用注解,传递参数的注意使用方法_spring_02

@ApiOperation() 用于方法;表示一个http请求的操作 
value用于方法描述 
notes用于提示内容 
tags可以重新分组(视情况而用) 
@ApiParam() 用于方法,参数,字段说明;表示对参数的添加元数据(说明或是否必填等) 
name–参数名 
value–参数说明 
required–是否必填

@Api(value="用户controller",tags={"用户操作接口"})
@RestController
public class UserController {
@ApiOperation(value="获取用户信息",tags={"获取用户信息copy"},notes="注意问题点")
@GetMapping("/getUserInfo")
public User getUserInfo(@ApiParam(name="id",value="用户id",required=true) Long id,@ApiParam(name="username",value="用户名") String username) { // userService可忽略,是业务逻辑 User user = userService.getUserInfo(); return user; } }

 

效果图: 

swagger2的常用注解,传递参数的注意使用方法_spring_03

@ApiModel()用于类 ;表示对类进行说明,用于参数用实体类接收 
value–表示对象名 
description–描述 
都可省略 
@ApiModelProperty()用于方法,字段; 表示对model属性的说明或者数据操作更改 
value–字段说明 
name–重写属性名字 
dataType–重写属性类型 
required–是否必填 
example–举例说明 
hidden–隐藏

@ApiModel(value="user对象",description="用户对象user")
public class User implements Serializable{ private static final long serialVersionUID = 1L; @ApiModelProperty(value="用户名",name="username",example="xingguo") private String username; @ApiModelProperty(value="状态",name="state",required=true) private Integer state; private String password; private String nickName; private Integer isDeleted; @ApiModelProperty(value="id数组",hidden=true) private String[] ids; private List<String> idList; //省略get/set }

 

 

@ApiOperation("更改用户信息")
@PostMapping("/updateUserInfo")
public int updateUserInfo(@RequestBody @ApiParam(name="用户对象",value="传入json格式",required=true) User user){

int num = userService.updateUserInfo(user);
return num;
}

 

 

效果图: 

swagger2的常用注解,传递参数的注意使用方法_spring_04

swagger2的常用注解,传递参数的注意使用方法_用户名_05

@ApiIgnore()用于类或者方法上,可以不被swagger显示在页面上 
比较简单, 这里不做举例

@ApiImplicitParam() 用于方法 
表示单独的请求参数 
@ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam 
name–参数ming 
value–参数说明 
dataType–数据类型 
paramType–参数类型 
example–举例说明

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

}

 

效果图: 

swagger2的常用注解,传递参数的注意使用方法_spring_06

 

标签:ApiImplicitParam,name,value,private,用于,swagger2,注解,参数
From: https://blog.51cto.com/u_13991401/5884922

相关文章

  • 注解与代理模式
    注解与代理模式相关介绍Annotation就是嵌入在代码中的标记,补充代码功能,可以修饰包,类,方法,变量实际开发中,基于注解可以替换配置文件框架=注解+反射+设计模式的集合......
  • 前后端分离中,在vue中如何截取微信回调地址上的code参数?
    作者:迷彩摘要在前后端分离开发中,微信公众号、企业微信、小程序、开发中,经常会有授权登录的场景,但是授权登录场景肯定会有一个问题,就是接收微信的回调,同时前端要拿到回调地......
  • @Aspect 注解使用详解
    AOP为AspectOrientedProgramming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是​​OOP​​​的延续,是软件开发中的一个......
  • vue+element-ui前后端分离,前端传递参数,后端接收不到
    vue+element-ui后台接受不到前端传递的参数,特别是多对象上传时(例如:传递表单对象和文件对象时)原方法的jsexportfunctionaddTemplate(data){   returnrequest({ ......
  • 解决mysql的in条件中参数是带引号的字符串的时候查询失效
    在开发中有时会使用到in查询,并且里面的参数又是数据库中的一个字段,比如如下错误的例子SELECT`ag`.`id`,`ag`.`rules`,(SELECTGROUP_CONCA......
  • Linux指定参数启动Jar包
    Linux上启动jar包用于调试,通过指定参数启动,记录一下,命令行如下:nohupjava-jar-Xmx256M-Xms256Mxxxx.jar--server.port=9092--client.key=yourclientKey--client.s......
  • Oracle中通过游标执行带参数的存储过程实现解析CLOB字段内的xml字符串:
    摘要:近来之前的项目数据出现了问题,原因是由于之前在设计数据库的时候把时间字段设置成了字符串格式,所以给后期的数据操作带来了很大的麻烦,这里提醒一下各位程序猿,以后在开发......
  • Struts2.3接收post方式提交的表单参数的方式
    一:方式一:通过request来获取,首先让action实现ServletRequestAware接口,然后通过request来获取提交的参数,代码如下:packagecn.gov.csrc.flight.action;importjava.util.HashM......
  • Hibernate3.X实现基于CLOB字段类型的注解方式:
    一:Hibernate3.X实现基于CLOB字段类型的注解方式的例子:下面直接上代码:二:UserInfo.javapackagecn.gov.csrc.cms.model;importjavax.persistence.Basic;importjavax.persist......
  • 光模块的参数有哪些呢?
    在现代信息网络汇总,光纤通信占据着主导地位,随着网络的覆盖越来越广泛和通信容量的不断增加,通信链路的提升也是必然的发展,光模块在光通信网络中实现着光电信号的转换,是光纤通......