SpringBoot【十三(完结篇)】集成在线接口文档Swagger2

一、前言🔥

环境说明:Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE

 

二、Swagger常用注解

由于Swagger 是通过注解的方式来生成对应的 API,在接口上我们需要加上各种注解来描述这个接口,所以对它常用的注解我们是必须要清楚的,要不然我讲这些也只是徒劳,

接下来我将关于 Swagger 注解的使用在教程进行详细讲解。请大家好好听~

1、@API 

作用:修饰整个类,描述Controller的作用。

代码演示:

@RestController
@RequestMapping("/user")
@Api(tags = "用户管理模块",description = "用户管理模块")
public class UserController {}

演示截图:

2、@ApiOpration

作用:描述一个类的一个方法,或者说一个接口。

代码演示:

@GetMapping("/get-users")
@ApiOperation(value = "不分页查询所有用户信息",notes = "不分页查询所有用户信息")
public List<UserEntity> getUserList() {}

演示截图:

3、@ApiParam

作用:单个参数描述。

代码演示:

@GetMapping("/getUser-by-id")
@ApiOperation(value = "根据用户id查询用户信息",notes = "根据用户id查询用户信息")
public UserEntity getUserById(@RequestParam(name = "userId")@ApiParam("请输入用户id") String userId){    return userMapper.getUserById(userId);
}

演示截图:

4、@ApiModel

作用:用对象来接收参数。

代码演示:

@ApiModel(value = "查询用户参数体",description = "查询用户参数体")
public class QueryUserInfoModel {
}

演示截图:

5、@ApiModelProperty

作用:用对象接收参数时,描述对象的一个字段。

代码演示:

@ApiModelProperty("发件人邮箱账号")
private String sendMailAccount;@ApiModelProperty("收件人邮箱账号")
private String acceptMailAccount;

演示截图:

6、@ApiIgnore

作用:可以用在类、方法上,方法参数中,用来屏蔽某些接口或参数,使其不在页面上显示。

代码演示1:用在类上

@ApiIgnore
@RestController
@RequestMapping("/user")
@Api(tags = "用户管理模块",description = "用户管理模块")
public class UserController {}

代码演示2:用在方法上

 @ApiIgnore@GetMapping("/get-users")@ApiOperation(value = "不分页查询db所有用户信息",notes = "不分页查询db所有用户信息")public ListgetUserList() {return userService.getUsers();}

 以上这个注解也是经常会被用到,如果接口暂时不上线,或者还未完善,我们就可以加上此注解,这样使用swagger文档的同事就不会看到这个接口,以免造成不必要的麻烦,接口报错啊?这接口怎么逻辑不对?等问题,是不是就很便利,二来你也不需要注释掉或者删除,所以这个注解大家还是要多练练加深印象哈。

**注意:**如下所介绍到的几个不是经常用到,我们就当拓展吧~以了解为主哈。你们不必花时间深入研究。

7、@ApiResponse

作用:在 Rest 接口或类上和 @ApiResponses 组合使用,组装返回参数说明。

8、@ApiResponses

作用:HTTP响应整体描述。

9、@ApiError

作用:发生错误返回的信息。

10、@ApiImplicitParam

作用:一个请求参数。

11、@ApiImplicitParams

作用:多个请求参数 。

... ...

其实还有一部分api,我就一一列举了,靠大家举一反三啦。

三、总结

       其实归根到底啊,使用Swagger,就是把相关的信息存储在它定义的描述文件里面(yml或json格式),再通过维护这个描述文件可以去更新接口文档,以及生成各端代码。而Springfox-swagger,则可以通过扫描代码去生成这个描述文件,连描述文件都不需要再去维护了。所有的信息,都在代码里面了。代码即接口文档,接口文档即代码,在线文档就替我们解决了文档书写及维护的百分之九十的工作,还是很感谢这些开源大佬们做出的贡献。

       至于为什么说是Springfox-swagger?其实呢Swagger 就可以看作是一个遵循了 OpenAPI 规范的一项技术,而 springfox 则是这项技术的具体实现。 就好比 Spring 中的 AOP 和 DI 一样,前者是思想,而后者是实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/489115.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

麒麟信安推出支持信创PC的新一代云桌面方案,助力政务信创高效安全运维

12月11日&#xff0c;在第二届国家新一代自主安全计算系统产业集群融通生态大会上&#xff0c;麒麟信安发布了支持信创PC的新一代云桌面方案&#xff0c;该方案是基于国际TCI架构实现国产PC机云化纳管在国内的首次发布&#xff0c;并与银河麒麟桌面操作系统、长城国产PC整机实现…

28.攻防世界PHP2

进入场景 扫描目录 [04:12:32] 403 - 303B - /.ht_wsr.txt [04:12:32] 403 - 306B - /.htaccess.bak1 [04:12:32] 403 - 308B - /.htaccess.sample [04:12:…

右玉200MW光伏电站项目 微气象、安全警卫、视频监控系统

一、项目名称 山西右玉200MW光伏电站项目 微气象、安全警卫、视频监控系统 二、项目背景&#xff1a; 山西右玉光伏发电项目位于右玉县境内&#xff0c;总装机容量为200MW&#xff0c;即太阳能电池阵列共由200个1MW多晶硅电池阵列子方阵组成&#xff0c;每个子方阵包含太阳能…

商业银行基于容器云的分布式数据库架构设计与创新实践

导读 本文介绍了某商业银行基于 TiDB 和 Kubernetes(简称 K8s) 构建的云化分布式数据库平台&#xff0c;重点解决了传统私有部署模式下的高成本、低资源利用率及运维复杂等问题。 通过引入 TiDB Operator 自动化管理与容器化技术&#xff0c;银行能够实现多个业务系统的高可用…

TongWe7.0-东方通TongWeb控制台无法访问 排查

**问题描述&#xff1a;**无法访问TongWeb的控制台 逐项排查&#xff1a; 1、控制台访问地址是否正确&#xff1a;http://IP:9060/console #IP是服务器的实际IP地址 2、确认TongWeb进程是否存在&#xff0c;执行命令&#xff1a;ps -ef|grep tongweb 3、确认TongWeb服务启动…

yolov,coco,voc标记的睡岗检测数据集,可识别在桌子上趴着睡,埋头睡觉,座椅上靠着睡,平躺着睡等多种睡姿的检测,6549张图片

yolov&#xff0c;coco,voc标记的睡岗检测数据集&#xff0c;可识别在桌子上趴着睡&#xff0c;埋头睡觉&#xff0c;座椅上靠着睡&#xff0c;平躺着睡等多种睡姿的检测&#xff0c;6549张图片 数据集分割 6549总图像数 训练组91&#xff05; 5949图片 有效集9&#x…

echarts绘制自定义展示排名和数据等信息(数据排名进度条)

目录 一、结构分析 二、配置图表各部分 1.名称及排序 2.进度条绘制 3.数据末端圆形绘制 &#xff08;1&#xff09;基本配置 &#xff08;2&#xff09;数据 &#xff08;3&#xff09;坐标轴配置 &#xff08;4&#xff09;点的样式 &#xff08;5&#xff09;项的样…

独家原创 | CEEMDAN-CNN-GRU-GlobalAttention + XGBoost组合预测

往期精彩内容&#xff1a; 时序预测&#xff1a;LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较 全是干货 | 数据集、学习资料、建模资源分享&#xff01; EMD变体分解效果最好算法——CEEMDAN&#xff08;五&#xff09;-CSDN博客 拒绝信息泄露&#xff01;VMD滚动分…

数据仓库-基于角色的权限管理(RBAC)

什么是基于角色的用户管理&#xff1f; 基于角色的用户管理(Role-Based Access Control&#xff0c;简称RBAC)是通过为角色赋予权限&#xff0c;用户通过成为适当的角色而得到这些角色的权限。 角色是一组权限的抽象。 使用RBAC可以极大简化对权限的管理。 什么是RBAC模型&…

鸿蒙调试打包(非正式打包)

文章目录 前言第一步&#xff1a;生成.p12和.csr文件第二步&#xff1a;申请证书的前置步骤第三步&#xff1a;申请证书 前言 HarmonyOS 应用打包后的文件为.app 格式&#xff0c; android 打包后的文件为.apk&#xff0c;IOS 打包后的文件为.apa HarmonyOS通过数字证书&#…

警惕!手动调整服务器时间可能引发的系统灾难

警惕&#xff01;手动调整服务器时间可能引发的系统灾难 1. 鉴权机制1.1 基于时间戳的签名验证1.2 基于会话的认证机制&#xff08;JWT、TOTP&#xff09; 2. 雪花算法生成 ID 的影响2.1 时间戳回拨导致 ID 冲突2.2 ID 顺序被打乱 3. 日志记录与审计3.1 日志顺序错误3.2 审计日…

Java基础学习:java常用启动命令

一、java -jar 1、系统属性传递 使用形式&#xff1a;java -DpathD:\jacoco -jar 获取方式&#xff1a;System.getProperties() 2、系统参数传递 使用形式&#xff1a;java -jar application.jar --jacocoPathD:\tomcat 获取方式&#xff1a;通过启动方法入口main的参数arg…

STT语音识别转文字工具 - 离线运行的本地语音识别服务

STT - 强大的离线语音识别转文字工具 STT是一款功能强大的本地语音识别转文字工具,基于fast-whisper开源模型开发,可以将视频和音频中的人声识别并转换为文字。它支持多种输出格式,包括JSON、带时间戳的SRT字幕以及纯文本格式,为用户提供了灵活的选择。 主要特点 完全离线运…

学习maven(添加依赖坐标,maven的常用命令,依赖传递,解决依赖冲突)

目录 前言 添加依赖坐标 maven 的常用命令 如下图所示&#xff1a;重点是标红的 如何使用这些maven的常用命令呢&#xff1f; 实例 maven常用的命令可以在IDEA中有自带插件来完成 打开IDEA的命令行终端 依赖传递 什么是依赖传递呢&#xff1f; 解决依赖冲突问题 什么…

远程控制电脑技术让我们的生活更加简化

在忙碌的现代生活节奏下&#xff0c;远程控制电脑技术已经成为我们生活中不可或缺的一部分。无论是在家办公&#xff0c;还是在旅途中需要紧急处理工作&#xff0c;远程控制电脑都能为我们提供极大的便利。今天&#xff0c;我们就来聊聊远程控制电脑技术是如何简化我们的生活&a…

【MySQL数据库】Ubuntu下的mysql

目录 1&#xff0c;安装mysql数据库 2&#xff0c;mysql默认安装路径 3&#xff0c;my.cnf配置文件 4&#xff0c;mysql运用的相关指令及说明 5&#xff0c;数据库、表的备份和恢复 mysql是一套给我们提供数据存取的&#xff0c;更加有利于管理数据的服务的网络程序。下面…

HarmonyOS:使用Grid构建网格

一、概述 网格布局是由“行”和“列”分割的单元格所组成&#xff0c;通过指定“项目”所在的单元格做出各种各样的布局。网格布局具有较强的页面均分能力&#xff0c;子组件占比控制能力&#xff0c;是一种重要自适应布局&#xff0c;其使用场景有九宫格图片展示、日历、计算器…

(一)强化学习基础概念及学习路径

目录 前言 一、强化学习是什么&#xff1f; 二、强化学习中的基本概念 1.状态 2.动作 3.奖励 4.策略 5.智能体 6.环境 7.智能体与环境交互 三、强化学习路径 总结 前言 强化学习&#xff08;Reinforcement Learning, RL&#xff09;是机器学习的范式和方法论之一&a…

六西格玛DMAIC在企业得项目管理中有什么作用

六西格玛&#xff08;Six Sigma&#xff09;是一种以数据为基础的管理方法&#xff0c;旨在通过减少缺陷和变异来提高过程质量和效率。DMAIC 是六西格玛中一种常用的改进方法论&#xff0c;适用于现有过程的改进。DMAIC 代表五个阶段&#xff1a;定义&#xff08;Define&#x…

【C++】简单计算器问题的深度解析与优化对比

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;问题描述&#x1f4af;实现 1&#xff1a;我的实现代码分析优点不足 &#x1f4af;实现 2&#xff1a;老师的第一种实现代码分析优点不足 &#x1f4af;实现 3&#xff1a;…