【java基础知识】swagger组件常用命令
刚开始的时候,在controller层使用@RequestParam的时候,发现这个参数是必须要输入值的,但是我们有时候必须查询的时候允许参数为空,使用这个注解就不行了。
在集成了swagger2后,找了半天的原因,发现使用@ApiImplicitParam这个注解可以解决这个问题。
对应下面的参数。
所以我们可以使用这个注解来解决我们所遇到的参考为空的问题。
而且已经集成了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={"用户操作接口"})@RestControllerpublic class UserController {}
效果图:
@ApiOperation() 用于方法;表示一个http请求的操作
value用于方法描述
notes用于提示内容
tags可以重新分组(视情况而用)
@ApiParam() 用于方法,参数,字段说明;表示对参数的添加元数据(说明或是否必填等)
name–参数名
value–参数说明
required–是否必填
@Api(value="用户controller",tags={"用户操作接口"})@RestControllerpublic 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;}}
效果图:
@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;}
效果图:
@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(){}
效果图:
【java基础知识】swagger组件常用命令相关推荐
- php redis操作命令,Redis基础知识之————php-Redis 常用命令专题
Keys del,delete - 删除键 dump - 返回存储在指定键值的序列化版本. exists - 确定键是否存在 expire,setTimeout,pexpire - 设置键的生存时间( ...
- Java基础知识笔记-11_2-Swing用户界面组件
Java基础知识笔记-11_2-Swing用户界面组件 这章教程两个版本,一个语法是非lambda表达式版本,另一个是lambda表达式版本 非lambda表达式版本 1 Java Swing概述 J ...
- java怎么开始学dos,第一阶段-Java基础知识:【第一章 DOS命令与开发环境的配置 + 第一个程序HelloWorld】...
加油Ideal星河滚烫 你是人间理想 第一阶段 JAVA基础知识 第一章 开发环境的配置 Dos 命令 在正式进入Java学习之前我们来了解一个看起来B格很高的东西--Dos命令 DOS命令,计算机 ...
- JAVA基础知识学习全覆盖
文章目录 一.JAVA基础知识 1.一些基本概念 1.Stringbuffer 2.局部变量成员变量 3.反射机制 4.protect 5.pow(x,y) 6.final ,finally,fina ...
- Java基础知识 廖雪峰教程笔记
Java基础知识 Java基础知识 java简介 名词解释 运行Java程序 Java基本数据类型 模块 包装类型 记录类 异常处理 Java异常 使用Commons Logging 使用log4j ...
- Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO
Java基础知识第二讲(Java编程规范/JVM/集合框架/异常体系/Java反射/语法知识/Java IO/码出高效) 分享在java学习及工作中,常使用的一些基础知识,本文从JVM出发,讲解了JV ...
- java(5)---Java基础知识大全
Java基础知识大全 一.基础知识: 1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. java语言是跨平 ...
- 【剑指 Java】第 1 弹:靠这份 Java 基础知识总结,我拿到了满意的 Offer
前言 因为博主是 2021 届毕业生,当时为了准备秋招,特意总结的 Java 基础知识面试高频题,最后也算找到了挺满意的工作.因此回馈给大家,希望能对大家起到一定的帮助. 0. 入门常识 0.1 Ja ...
- Java基础知识(二)(Object类的常用方法、日期时间类、System类、StringBuilder类、包装类、Collection集合、Iterator迭代器、泛型、list集Set接口...)
文章目录 Java基础知识(二) 1.Object类的常用方法 1.1 toString方法 1.2 equals方法 1.3 Objects类 2.日期时间类 2.1 Date类 2.2 DateF ...
最新文章
- 努比亚压力键不显示菜单问题
- sublime 写lua相关的插件 cocos
- lisp 线型虚实变换_绘画|虚实?国风画这叫线型变化!画线条的正确姿势,你对了吗...
- java对象内存占用情况分析
- 基于顺序存储结构的图书信息表的图书去重(C++)
- bootice添加linux_如何使用老毛桃winpe的Bootice工具新建实模式启动项(Grub/Linux)?
- ENVI入门系列教程---一、数据预处理---4.2 自动采集控制点的RPC正射校正
- 计算机辅助设计 Photoshop 教案,计算机辅助设计①Photoshop学习领域课程标准.doc
- 怎么查充电器支不支持pd快充协议_新买的iPhone11不能快充?很可能是因为你没用对充电器...
- python基础语法全解/数据类型/面向对象编程
- 建模是什么,建模定义,及学习方法
- 什么是慢查询?如何优化?
- OpenCV 角度计算
- EMW3080+STC15轻松实现设备上云2(阿里云物联网平台、智能生活开放平台)
- 可!!Win10禁用驱动程序强制签名
- sobel算子,scharr算子,Laplacian算子
- 江苏省计算机二级Python备考经验(2020年10月考试)
- Redis之地理坐标
- [日常] 1. 信息安全
- Linux - Ftp客户端安装、创建Ftp用户和登录
热门文章
- 关于使用rem单位,calc()进行自适应布局
- Vue.JS学习笔记
- 【设计模式】学习笔记8:命令模式
- Dual-arm cooperation and implementing for robotic harvesting tomato using binocular vision(摘西红柿机器人)
- 小米选择了总是打开方式_小米不计成本开启让利:70英寸4K大屏电视2999,K30 5G首卖...
- CCF201803-1 跳一跳
- 基本BASH SHELL脚本命令——Linux系统管理命令-检测程序、检测磁盘空间
- python中keyboardinterrupt_为什么我不能在python中处理KeyboardInterrupt?
- base64位转成二进制流_你知道 Base64 编码中的 64 指的是什么吗?
- 从问题出发,解密Oracle rdba结构