当前位置: 首页 > news >正文

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

一、前言🔥

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

 

二、如何生成Swagger文档

        上一期我们已经能正常访问swagger在线文档,但是文档空空如也,对不对,接下来我就教大家怎么把相关的接口都给自动生成到文档里头,而且还有一个很好的功能点就是支持在线测试,等价于Postman接口测试。就问你们爱了没。

        如下就给大家演示一下,也就是几个api的使用,就搞定啦,是不是感jio很简单呐。

1、配置controller

        首先我们将会用到两个注解@Api 与 @ApiOperation ;具体注解使用及作用我会在下面进行介绍,这里就直接进行上手使用环节。

/*** 用户管理分发器*/
@RestController@RequestMapping("/user")
@Api(tags = "用户管理模块",description = "用户管理模块") //修饰整个类,进行描述
public class UserController {@Autowired
private UserService userService;
@GetMapping("/get-users")
public List<UserEntity> getUserList() {return userService.getUsers();
}}

重启下项目,神奇的一幕发生了。请看下方截图:

我们再来使用@ApiOperation,如下对接口进行描述:

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

再次重启下项目,请看:

       出现了你刚配置的文字描述,这也就是方便给前端开发进行接口详细描述提醒。

然后你点击下方调试,点击发送,即:

结果返回:

       是不是很有postman的即视感,没错,在线调试也是被集成进去了。无论对自己还是前端开发都及其方便,毕竟测试接口很方便啊,不需要像postman输入完整访问路径等相关接口调用信息,一切操作都变得很简单。有没有?直接发送请求即可。

2、配置entity等参数结构体

我们再来进行一个参数体配置,看看会发生什么?

@Data
@ApiModel(value = "查询用户参数体合集",description = "查询用户参数体合集")public class QueryUserInfoModel {@ApiModelProperty("性别")private String sex;@ApiModelProperty("班级名称")private String className;@ApiModelProperty("用户ids")private List<Integer> userIds;}

然后再结合上方所讲到的,对接口进行描述。

/*** 根据用户ids等参数联合查询用户信息*/
@PostMapping("/getUser-by-ids")
@ApiOperation(value = "根据用户ids等参数联合查询用户信息",notes = "根据用户ids等参数联合查询用户信息")
public List<UserInfoVo> getUserById(@RequestBody QueryUserInfoModel model){return userMapper.getUsersByIds(model.getUserIds());
}

再次重启项目,我们可以看到对参数体都有了描述;是不是看着很爽。这样就对非开发人员使用也变得很通透了,一看就知道每个参数分别对应什么意思,而不再需要配置额外的文档进行辅助测试了,对前端对测试对非专业人士都很便利,所以赶紧集成到自己的项目中用起来吧。

       至于上方截图涉及到的是否必填一栏,也是来源于@ApiModelProperty 这个 注解,自带是否必填这个属性(required),属性默认是false不必填,如果你要告诉前端及测试接口人员指定这个参数必须要填写,那你就把required属性设置值为true 即可,即表示该参数必填,如果不填,则肯定是不会通过接口调用的。

例如下方代码演示:表示该性别字段为必填参数。

@ApiModelProperty(value = "性别",required = true)

如上我就是制定了性别这个字段,你在通过swagger文档进行接口调用的时候,假设没传,你知道会出现什么问题嘛?聪明人都知道,不就提示字段为空,然后接口调用失败了嘛。

具体详情咱们看swagger调用返回:请看如下:

接着我们将性别字段,随便填入一个值,再进行调用,这个时候我们再看。

       可以看到,接口调用成功了,数据查询也返回了。

       很明显是由于你设置了required = true 这个属性触发的提醒效果,不加这个属性,就表示该字段可填可不填。一般都是接口定义好,如果参数必填,就加上该字段,进行提醒相关人员接口调用的时候,这个参数是必填项,不填则无法接口调用咯。基本就是这么个使用情况啦。

       还有很多api如何使用,期待小伙伴们自行探索啦,这里就给大家演示了基本几个常用的,剩下的就靠大家的自觉性与积极性啦。

相关文章:

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

一、前言&#x1f525; 环境说明&#xff1a;Windows10 Idea2021.3.2 Jdk1.8 SpringBoot 2.3.1.RELEASE 二、如何生成Swagger文档 上一期我们已经能正常访问swagger在线文档&#xff0c;但是文档空空如也&#xff0c;对不对&#xff0c;接下来我就教大家怎么把相关的接口都给…...

【C++初阶】第8课—标准模板库STL(string_2)

文章目录 1. string类对象遍历操作1.1 标准库中的成员函数begin( )和end( )1.2 标准库中的成员函数rbegin( )和rend( )1.3 C11引入的4个标准库中的成员函数 2. string类对象的访问2.1 operator[ ]运算符重载访问字符串字符2.2 公有成员函数at访问字符2.3 公有成员函数back()和f…...

【arm】程序跑飞,SWD端口不可用修复(N32G435CBL7)

项目场景&#xff1a; 国民N32G43X系列&#xff0c;烧录了一个测试程序&#xff0c;在DEBUG中不知什么原因挂掉&#xff0c;然后就无法连接SWD或JLINK。 问题描述 在SWD配置中不可见芯片型号&#xff0c;无法connect&#xff0c;无法烧录。但基本判断是芯片没有损坏。怀疑是程…...

https证书生成、linux 生成https证书、nginx 配置https证书

1. 检查 Certbot 是否已安装 which certbot 2. 安装 Certbot 2.1启用 EPEL 仓库&#xff08;如果尚未启用&#xff09;&#xff1a; sudo yum install epel-release 2.2 安装 Certbot 和 Nginx 插件&#xff1a; sudo yum install certbot python3-certbot-nginx 2.3验证安…...

Halcon随机贴图生成缺陷图片脚本

halcon随机贴图生成缺陷图片&#xff0c;用于深度学习训练: read_image (Image, C:/Users/61082/Desktop/bentiiamge/omron/S06-1211/ok/ok_images/D246B_CPFNNUBA8LT0SX_AAA_S2412001793_C1216_1733895885320066.jpg) get_image_size (Image, Width, Height) gen_rectangle1 …...

[ZMQ] -- ZMQ通信Protobuf数据结构 1

1、前言背景 工作需要域间实现zmq通信&#xff0c;刚开始需要比较简单的数据结构&#xff0c;比如两个bool&#xff0c;后面可能就需要传输比较大的数据&#xff0c;所以记录下实现流程&#xff0c;至于为啥选择proto数据结构去做大数据传输&#xff0c;可能是地平线也用这个&…...

大数据平台

大数据行业应用持续升温&#xff0c;特别是企业级大数据市场正在进入快速发展时期。越来越多的企业期望实现数据孤岛的打通&#xff0c;整合海量的数据资源&#xff0c;挖掘并沉淀有价值的数据&#xff0c;进而驱动更智能的商业。随着公司数据爆发式增长&#xff0c;原有的数据…...

《C++解锁机器学习特征工程:构建智能数据基石》

在当今机器学习蓬勃发展的浪潮中&#xff0c;特征工程犹如一座坚实的基石&#xff0c;奠定了模型成功的基础。而 C以其卓越的性能和强大的底层控制能力&#xff0c;在实现机器学习特征工程方面发挥着独特且关键的作用。 特征工程的核心目标是从原始数据中提取和构建最具代表性…...

《机器学习》3.7-4.3end if 启发式 uci数据集klda方法——非线性可分的分类器

目录 uci数据集 klda方法——非线性可分的分类器 计算 步骤 1: 选择核函数 步骤 2: 计算核矩阵 步骤 4: 解广义特征值问题 と支持向量机&#xff08;svm&#xff09; 目标&#xff1a; 方法&#xff1a; 核技巧的应用&#xff1a; 区别&#xff1a; 使用 OvR MvM 将…...

【Linux】VMware 安装 Ubuntu18.04.2

ISO镜像安装步骤 选择语言 English 选择键盘布局 English 选择系统 Ubuntu 虚拟机网卡地址&#xff0c;默认即可 代理地址&#xff0c;默认空即可 镜像地址&#xff0c;修改成阿里云地址 选择第二项&#xff0c;LVM 磁盘扩容技术 第一块硬盘名sda&#xff0c;默认…...

人员离岗监测摄像机智能人员睡岗、逃岗监测 Python 语言结合 OpenCV

在安全生产领域&#xff0c;人员的在岗状态直接关系到生产流程的顺利进行和工作环境的安全稳定。人员离岗监测摄像机的出现&#xff0c;为智能人员睡岗、逃岗监测提供了高效精准的解决方案&#xff0c;而其中的核心技术如AI识别睡岗脱岗以及相关的算法盒子和常见的安全生产AI算…...

【Spark】Spark数据倾斜解决方案、大表join小表及大表join大表优化思路

如果觉得这篇文章对您有帮助&#xff0c;别忘了点赞、分享或关注哦&#xff01;您的一点小小支持&#xff0c;不仅能帮助更多人找到有价值的内容&#xff0c;还能鼓励我持续分享更多精彩的技术文章。感谢您的支持&#xff0c;让我们一起在技术的世界中不断进步&#xff01; Sp…...

探索 Cesium 的未来:3D Tiles Next 标准解析

探索 Cesium 的未来&#xff1a;3D Tiles Next 标准解析 随着地理信息系统&#xff08;GIS&#xff09;和 3D 空间数据的快速发展&#xff0c;Cesium 作为领先的开源 3D 地球可视化平台&#xff0c;已成为展示大规模三维数据和进行实时渲染的强大工具。近年来&#xff0c;随着…...

每日一站技術架構解析之-cc手機桌布網

# 網站技術架構解析&#xff1a; ## 一、整體架構概述https://tw.ccwallpaper.com是一個提供手機壁紙、桌布免費下載的網站&#xff0c;其技術架構設計旨在實現高效的圖片資源管理與用戶訪問體驗優化。 ### &#xff08;一&#xff09;前端展示 1. **HTML/CSS/JavaScript基礎構…...

prometheus监控之黑盒(blackbox)监控

1.简单介绍 blackbox-exporter项目地址&#xff1a;https://github.com/prometheus/blackbox_exporter blackbox-exporter是Prometheus官方提供的一个黑盒监控解决方案&#xff0c;blackbox-exporter无须安装在被监控的目标环境中&#xff0c;用户只需要将其安装在与Promethe…...

计算机网络之传输层协议TCP

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 计算机网络之传输层协议TCP 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目…...

子查询与嵌套查询

title: 子查询与嵌套查询 date: 2024/12/13 updated: 2024/12/13 author: cmdragon excerpt: 子查询和嵌套查询是关系型数据库中强大的查询工具,允许用户在一个查询的结果中再进行查询。通过使用子查询,用户能够简化复杂的SQL语句,增强查询的灵活性和可读性。本节将探讨子…...

GPT-SoVITS语音合成模型部署及使用

1、概述 GPT-SoVITS是一款开源的语音合成模型&#xff0c;结合了深度学习和声学技术&#xff0c;能够实现高质量的语音生成。其独特之处在于支持使用参考音频进行零样本语音合成&#xff0c;即使没有直接的训练数据&#xff0c;模型仍能生成相似风格的语音。用户可以通过微调模…...

springboot423玩具租赁系统boot(论文+源码)_kaic

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装玩具租赁系统软件来发挥其高效地信息处理的作用&#xff0c…...

【收藏】Cesium 限制相机倾斜角(pitch)滑动范围

1.效果 2.思路 在项目开发的时候&#xff0c;有一个需求是限制相机倾斜角&#xff0c;也就是鼠标中键调整视图俯角时&#xff0c;不能过大&#xff0c;一般 pitch 角度范围在 0 至 -90之间&#xff0c;-90刚好为正俯视。 在网上查阅了很多资料&#xff0c;发现并没有一个合适的…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...

从0开始一篇文章学习Nginx

Nginx服务 HTTP介绍 ## HTTP协议是Hyper Text Transfer Protocol&#xff08;超文本传输协议&#xff09;的缩写,是用于从万维网&#xff08;WWW:World Wide Web &#xff09;服务器传输超文本到本地浏览器的传送协议。 ## HTTP工作在 TCP/IP协议体系中的TCP协议上&#…...

FTPS、HTTPS、SMTPS以及WebSockets over TLS的概念及其应用场景

一、什么是FTPS&#xff1f; FTPS&#xff0c;英文全称File Transfer Protocol with support for Transport Layer Security (SSL/TLS)&#xff0c;安全文件传输协议&#xff0c;是一种对常用的文件传输协议(FTP)添加传输层安全(TLS)和安全套接层(SSL)加密协议支持的扩展协议。…...