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

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

时间:2023-04-27 22:34:05浏览次数:45  
标签:ApiImplicitParam name value private 用于 swagger2 注解 参数


背景介绍:

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

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

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

对应下面的参数。

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

而且已经集成了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的常用注解,传递参数的注意使用方法_字段_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的常用注解,传递参数的注意使用方法_用户名_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的常用注解,传递参数的注意使用方法_swagger_04

swagger2的常用注解,传递参数的注意使用方法_ci_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的常用注解,传递参数的注意使用方法_字段_06

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

相关文章

  • 基于注解方式声明切面(AOP)
    基础知识:【首先启动对@AspectJ注解的支持(蓝色部分):<beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/ao......
  • 参数
     /*目录:参数一:实参1位置2关键字3原子化二:形参1无默认参数2默认参数(a)普通(b)空(c)None三:可变参数四:可变命名参数五:书写顺序*/  ......
  • 【动手学深度学习】第五章笔记:层与块、参数管理、自定义层、读写文件、GPU
    为了更好的阅读体验,请点击这里由于本章内容比较少且以后很显然会经常回来翻,因此会写得比较详细。5.1层和块事实证明,研究讨论“比单个层大”但“比整个模型小”的组件更有价值。例如,在计算机视觉中广泛流行的ResNet-152架构就有数百层,这些层是由层组(groupsoflayers)的重复模......
  • WPF程序接收启动参数并启动
    新建一个WPF项目WpfApp1 创建一个新的启动类publicclassNewApp{publicstaticstring[]Args=newstring[]{};[STAThread]publicstaticvoidMain(string[]args){Args=args;Appapp=newApp();......
  • Python-字符串format方法指定参数
    一、字符串的format方法有几种指定参数的方式:(1)默认方式—传入的参数与{}一一对应(2)命名参数(3)未知参数{2}二、详细描述字符串的format方法如何格式化字符串:第一种方法:s1='Todayis{},thetemperatureis{}degrees.'print(s1.format('Saturday',24))第二种方法:s2='To......
  • 1 数组和切片、2 可变长参数 、3 maps
    目录1数组和切片1.1数组1.2切片2可变长参数3maps1数组和切片1.1数组#1定义,初始化,使用#2数组是值类型 -数字,字符串,布尔,数组,都是值类型,真正直接存数据-切片,map,指针引用类型,是个地址,指向了具体的值#3数组长度#4循环打印数组#5多纬数组#6数组......
  • jmeter参数化的6种方式
    1.用户自定义变量:添加“配置元件”->“用户定义的变量”。“名称”中输入变量名称,此处以登录为例,定义两个变量username和password。“值”中可以直接输入值,也可以通过Jmeter的函数__CSVRead,__StringFromFile从csv或dat文件中读取,还可以通过前缀加随机数的方法设置参数。 2.用......
  • Label。它的常用方法及其参数说明
    get():获取标签的文本内容。返回值为字符串类型。、my_label=Label(text='Hello,Kivy!')text=my_label.get()print(text)set(text):设置标签的文本内容。text参数为要设置的文本内容。my_label=Label()my_label.set('Hello,Kivy!')set_font_size(size):设置标......
  • Kivy中常用的菜单组件是PopupMenu。它的常用方法及其参数说明
    open(widget):在指定的控件下方打开弹出菜单。widget参数为要显示菜单的控件my_menu=PopupMenu()my_menu.open(my_button)dismiss():关闭弹出菜单。my_menu.dismiss()add_option(text,callback):向菜单中添加一个选项。text参数为选项的文本。callback参数为选......
  • TextInput。它的常用方法及其参数说明
    get():获取输入框的文本内容。返回值为字符串类型。my_text_input=TextInput()text=my_text_input.get()print(text)set(text):设置输入框的文本内容。text参数为要设置的文本内容my_text_input=TextInput()my_text_input.set('Hello,Kivy!')focus():将输入框设为焦......