swagger简单使用学习

注意

一下基于spring-boot 3.0.2版本,该版本不支持springfox-swagger2 2.9.2会报错,无法访问swagger

安装

pomx文件中添加对应的依赖

 <!-- swagger --><dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.1.0</version> <!-- 确保使用与 Spring Boot 兼容的最新版本 --></dependency>

新版本不需要配置类,安装好依赖后,启动项目,可以直接访问http://localhost:8080/swagger-ui/index.html

效果图:
在这里插入图片描述

常用语法

修改文档信息

如果需要修改文档信息,则需要使用配置类

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class OpenApiConfig {@Beanpublic OpenAPI customOpenAPI() {return new OpenAPI().info(new Info().title("API 文档标题") // 设置 API 文档标题.description("这是 API 文档的描述") // 设置 API 文档描述.version("1.0.0") // API 文档版本.contact(new Contact().name("开发者姓名").email("开发者邮箱").url("开发者个人网站或公司网站")).license(new License().name("Apache 2.0").url("https://springdoc.org"))); // 设置开源协议信息}
}

目录结构
在这里插入图片描述
效果
在这里插入图片描述

controller信息配置

controller添加描述信息

修改前
在这里插入图片描述
修改后

@Controller
@RequestMapping("/user")
@Tag(name="用户控制器",description = "处理用户相关操作")
public class UserController {@Autowiredprivate UserService userService;// 根据用户id查询用户信息@Operation(summary = "根据id获取用户",description = "返回用户信息")@GetMapping("/findById")@ResponseBodypublic Result findById(Integer id) {User user = userService.findById(id);return new Result(0, "查询成功", user);}
}
  • @Tag:用于为整个控制器添加描述信息,可以指定控制器的名称 (name) 和描述 (description)。
  • @Operation:用于为具体的 API 操作(方法)添加摘要 (summary) 和详细描述 (description)。
    在这里插入图片描述

入参描述

简单参数

 @Operation(summary = "根据id获取用户",description = "返回用户信息")@GetMapping("/findById")@ResponseBodypublic Result findById(@Parameter(description = "用户id") Integer id) {User user = userService.findById(id);return new Result(0, "查询成功", user);}

在这里插入图片描述

复杂对象入参

需要在参数实体类中添加

class UserParam {@Schema(description = "用户的唯一标识符,list集合", example = "[12345]")private List<Integer> idList;
}

在这里插入图片描述

返回值描述

在返回值的实体类中使用@Schema注解

public class Result<T> {@Schema(description = "业务状态码  0-成功  1-失败")private Integer code;//业务状态码  0-成功  1-失败@Schema(description = "提示信息")private String message;//提示信息...
}

在这里插入图片描述
需要注意的是controller接口的返回值要指定具体的实体类,否则swagger里无法显示

正确

 @Operation(summary = "根据id获取用户", description = "返回用户信息")@GetMapping("/findById")@ResponseBodypublic Result<User> findById(@Parameter(description = "用户id") Integer id) {User user = userService.findById(id);return Result.success(user);}

错误(不影响代码运行,但是没有具体的返回值)

 @Operation(summary = "根据id获取用户", description = "返回用户信息")@GetMapping("/findById")@ResponseBodypublic Result findById(@Parameter(description = "用户id") Integer id) {User user = userService.findById(id);return Result.success(user);}

在这里插入图片描述

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

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

相关文章

【三维重建】近期进展(完善中)

文章目录 前言一、UC-gs:交叉视图不确定性的航拍街道重建&#xff08;Drone-assisted Road Gaussian Splatting with Cross-view Uncertainty&#xff09;&#xff08;质量 &#xff09;细节结果 二、实时高斯&#xff1a;通过光度SLAM加速3DGS&#xff08;Towards Real-Time G…

Facebook的AI进化:如何用智能技术提升内容推荐

在数字时代&#xff0c;社交媒体平台不仅是信息传播的重要渠道&#xff0c;也是个人和品牌互动的关键平台。Facebook作为全球领先的社交媒体网络&#xff0c;其内容推荐系统的优化在很大程度上提升了用户体验。本文将探讨Facebook如何通过人工智能&#xff08;AI&#xff09;技…

AD7606工作原理以及FPGA控制验证(串行和并行模式)

文章目录 一、AD7606介绍二、AD7606采集原理2.1 AD7606功能框图2.2 AD7606管脚说明 三、AD7606并行模式时序分析以及实现3.1 并行模式时序图3.2 并行模式时序要求3.3 代码编写3.4 仿真观察 四、AD7606串行模式时序分析以及实现4.1 串行模式时序图4.2 串行模式时序要求4.3 代码编…

Oracle版本简介手册

Oracle版本简介手册 图1—数据库发布路线图表 Oracle数据库的各个版本反映了其技术的发展历程和功能增强&#xff0c;从最早的Oracle 1&#xff08;1979年&#xff09;到最新的版本&#xff0c;每个版本都带来了新的特性和改进&#xff0c;以满足不断变化的企业需求。以下是Or…

d3dcompiler_47.dll缺失的可能原因多种多样,那么d3dcompiler_47.dll缺失怎么修复

在数字世界的深处&#xff0c;d3dcompiler_47.dll文件扮演着至关重要的角色&#xff0c;它是Direct3D编译器的一部分&#xff0c;负责处理图形渲染和游戏运行中的关键任务。然而&#xff0c;当用户启动某个程序或游戏时&#xff0c;屏幕上突然弹出的错误提示“d3dcompiler_47.d…

【运维监控】influxdb 2.0+telegraf 监控tomcat 8.5运行情况(1)

关于java应用的监控本系列有文章如下&#xff1a; 【运维监控】influxdb 2.0telegraf 监控tomcat 8.5运行情况 【运维监控】influxdb 2.0grafana 监控java 虚拟机以及方法耗时情况 【运维监控】Prometheusgrafana监控tomcat运行情况 【运维监控】Prometheusgrafana监控spring b…

使用mobaxterm连接linux出现连接中断问题

1.问题描述 使用mobaxterm在连接到远程服务器时&#xff0c;如果隔一段时间不进行操作的话&#xff0c;会出现中断连接的现象。 2.解决 为了增强Linux系统的安全性&#xff0c;我们需要在用户输入空闲一段时间后自动断开&#xff0c;这个操作可以由设置TMOUT值来实现。将以下…

全球圆柱锂电池行业领军者!比克电池亮相2024深圳eVTOL展

2024深圳eVTOL产业发展大会暨低空经济展览会将于9月23-25日在深圳坪山燕子湖国际会展中心举办。展会将通过“两天论坛三天展览”的形式展开&#xff0c;专注未来城市空中交通新形态、民用有人驾驶、无人驾驶航空器、城市低空物流&#xff0c;并讨论eVTOL的整机研发、设计、制造…

【云计算】什么是云计算服务|为什么出现了云计算|云计算的服务模式

文章目录 什么是云计算服务本地部署VS云计算SaaS PaaS IaaS公有云、私有云、混合云为什么优先发展云计算服务的厂商是亚马逊、阿里巴巴等公司 什么是云计算服务 根据不同的目标用户&#xff0c;云计算服务&#xff08;Cloud Computing Services&#xff09;分为两种&#xff1…

制作自己的游戏:打砖块

文章目录 &#x1f680; 前言&#x1f680; 前期准备&#x1f680; 玩法设计&#x1f680; 游戏场景&#x1f353; 什么是游戏场景&#x1f353; 绘制左上角积分&#x1f353; 绘制右上角生命值&#x1f353; 绘制砖块&#x1f353; 绘制小球&#x1f353; 绘制挡板&#x1f35…

Java实用类——StringBuffer类和StringBuilder类

StringBuffer类和StringBuilder类位于java.util包中&#xff0c;是String类的增强型&#xff0c;提供了很多方法可供使用 StringBuffer和StringBuilder出现的原因是&#xff1a;使用拼接字符串会浪费大量内存空间 String a "Hello"; a a "chmy"; 新的…

分类任务实现模型集成代码模版

分类任务实现模型&#xff08;投票式&#xff09;集成代码模版 简介 本实验使用上一博客的深度学习分类模型训练代码模板-CSDN博客&#xff0c;自定义投票式集成&#xff0c;手动实现模型集成&#xff08;投票法&#xff09;的代码。最后通过tensorboard进行可视化&#xff0…

Datawhale x李宏毅苹果书AI夏令营深度学习详解进阶Task03

在深度学习中&#xff0c;批量归一化&#xff08;Batch Normalization&#xff0c;BN&#xff09;技术是一种重要的优化方法&#xff0c;它可以有效地改善模型的训练效果。本文将详细讨论批量归一化的原理、实现方式、在神经网络中的应用&#xff0c;以及如何选择合适的损失函数…

Python-面向对象编程(超详细易懂)

面向对象编程&#xff08;oop&#xff09; 面向对象是Python最重要的特性&#xff0c;在Python中一切数据类型都是面向对象的。 面向对象的编程思想&#xff1a;按照真实世界客观事物的自然规律进行分析&#xff0c;客观世界中存在什么样的实体&#xff0c;构建的软件系统就存在…

视频监控管理平台LntonAIServer视频智能分析噪声检测应用场景

在视频监控系统中&#xff0c;噪声问题常常影响到视频画面的清晰度和可用性。噪声可能由多种因素引起&#xff0c;包括但不限于低光环境、摄像机传感器灵敏度过高、编码压缩失真等。LntonAIServer通过引入噪声检测功能&#xff0c;旨在帮助用户及时发现并解决视频流中的噪声问题…

linux 内核代码学习(八)

总体目标&#xff1a;由于fedora10 linux发行版中自带的linux2.6.xx内核源码规模太庞大了&#xff0c;对于想通读内核源码的爱好者来说太困难了&#xff0c;因此选择了linux2.4.20内核来进行测试&#xff08;最终是希望能够实现linux1.0内核的源码完全编译和测试&#xff09;。…

了解一下HTTP 与 HTTPS 的区别

介绍&#xff1a; HTTP是超文本传输协议。规定了客户端&#xff08;通常是浏览器&#xff09;和服务器之间如何传输超文本&#xff0c;也就是包含链接的文本。通常使用TCP【1】/IP协议来传输数据&#xff0c;默认端口为80。 HTTPS是超文本传输安全协议&#xff0c;具有CA证书。…

【RLHF】浅谈ChatGPT 等大模型中的RLHF算法

本文收录于《深入浅出讲解自然语言处理》专栏&#xff0c;此专栏聚焦于自然语言处理领域的各大经典算法&#xff0c;将持续更新&#xff0c;欢迎大家订阅&#xff01;​个人主页&#xff1a;有梦想的程序星空​个人介绍&#xff1a;小编是人工智能领域硕士&#xff0c;全栈工程…

TCP的流量控制深入理解

在理解流量控制之前我们先需要理解TCP的发送缓冲区和接收缓冲区&#xff0c;也称为套接字缓冲区。首先我们先知道缓冲区存在于哪个位置&#xff1f; 其中缓冲区存在于Socket Library层。 而我们的发送窗口和接收窗口就存在于缓冲区当中。在实现滑动窗口时则将两个指针指向缓冲区…

STM32F103调试DMA+PWM 实现占空比逐渐增加的软启效果

实现效果&#xff1a;DMAPWM 实现PWM输出时&#xff0c;从低电平到输出占空比逐渐增加再到保持高电平的效果&#xff0c;达到控制 MOS 功率开关软启的效果。 1.配置时钟 2.TIM 的 PWM 功能配置 选择、配置 TIM 注意&#xff1a;选择 TIM 支持 DMA 控制输出 PWM 功能的通道&a…