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

随手记录第十四话 -- 在 Spring Boot 3.2.3 中使用 springdoc-openapi-starter-webmvc-ui

项目升级到JDK21后,SpringBoot版本也到了3.2.3,之前的Swagger-ui不在支持了,找了其他的一直忘记记录了,这里记录一下。

快捷目录

  • 1.引言
  • 2.添加依赖
  • 3.配置类
  • 4.Java代码实现
  • 5.启动应用
  • 6.总结

1.引言

随着 Spring Boot 版本的更新,一些依赖和配置也发生了变化。在 Spring Boot 3.2.3 中,原来常用的 Swagger-UI 不再直接支持,我们需要切换到 springdoc-openapi-starter-webmvc-ui 来实现类似的 API 文档功能。

2.添加依赖

基于Springboot3.2.3,引入pom依赖

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.3</version><relativePath/> <!-- lookup parent from repository -->
</parent><!-- Swagger UI 相关 -->
<dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.3.0</version>
</dependency>

3.配置类

你可以创建一个配置类来进一步定制 OpenAPI 的相关属性,比如文档标题、版本等。

/*** 创建一个公共类* api页面 http://127.0.0.1:8080/swagger-ui/index.html*/
@SecurityScheme(name = "Authorization", type = SecuritySchemeType.HTTP, scheme = "bearer", in = SecuritySchemeIn.HEADER)
public abstract class SwaggerConf {@Beanpublic OpenAPI createOpenApi() {return new OpenAPI().info(apiInfo())//设置授权信息.security(List.of(new SecurityRequirement().addList("Authorization")))//引入其他文档
//                .externalDocs(new ExternalDocumentation().description("百度一下")
//                        .url("http://www.baido.com"));}public abstract Info apiInfo();//分组@Beanpublic GroupedOpenApi publicApi() {return GroupedOpenApi.builder().group("api").pathsToMatch("/api/**").build();}@Beanpublic GroupedOpenApi adminApi() {return GroupedOpenApi.builder().group("admin").pathsToMatch("/admin/**").build();}
}

然后其他服务实现

@Profile({"dev", "test"})
@Configuration
public class SwaggerConfig extends SwaggerConf {@Overridepublic Info apiInfo() {return new Info().title("一款 xxx 业务接口文档").description("xxx业务处理").version("1.0");}
}

4.Java代码实现

@Tag(name = "钱包app相关接口")
@RestController
@RequestMapping("/api/app")
public class WalletController {@Operation(summary = "获取钱包初始化配置", description = "获取配置")@AnonymousGetMapping("/homeConfig")public ApiResultVO<JSONObject> getHomeConfig(@RequestParam(required = false) Long fromId) {.....    }
}//返回bean注解
@NoArgsConstructor
@Data
@Schema(name = "ApiResult", description = "REST接口标准返回值 View Model")
public class ApiResultVO<T> implements Serializable {/*** 返回码*/@Schema(title ="REST接口返回码")private Integer code;/*** 返回描述*/@Schema(title ="REST接口返回消息")private String message;
}

如果需要使用鉴权头部,需要用下面这个注解

@SecurityScheme(name = "Authorization", type = SecuritySchemeType.HTTP, scheme = "bearer", in = SecuritySchemeIn.HEADER)

5.启动应用

地址与原来的有点区别 http://127.0.0.1:8080/swagger-ui/index.html
在这里插入图片描述
实体类截图
在这里插入图片描述

6.总结

通过使用 springdoc-openapi-starter-webmvc-ui ,我们可以在 Spring Boot 3.2.3 中继续方便地生成和展示 API 文档,帮助我们更好地理解和管理项目中的接口。在实际应用中,可以根据需要进行更深入的定制和优化。
希望这篇文章对你顺利过渡到新的 API 文档工具提供帮助,让你在开发过程中能够更好地与 API 进行交互和文档化。

上一篇:随手记录第十三话 – 关于Python自动化部署神器fabric的应用与差异
下一篇:随手记录第十五话 – xxxx

烹羊宰牛且为乐,会须一饮三百杯

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Vue项目封装请求路径
  • 【Vue-video】Video 封装组件-Copy直接用解决封装BUG
  • 作为web3D的核心,webGL会被webGPU取代吗?
  • 视频汇聚/安防综合管理系统EasyCVR非管理员账户能调用分配给其他用户的通道是什么原因?
  • Ps:首选项 - 增效工具
  • 【STM32实物】基于STM32+ESP32+手机APP设计的智能宠物喂食系统实物源码原理图PCB设计文档演示视频——(文末工程资料下载)
  • 在C++中实现一个简单的图像处理库
  • 【开端】如何高效记录并整理编程学习笔记
  • C++ 11相关新特性(lambda表达式与function包装器)
  • 全面解析Gerapy分布式部署:从环境搭建到定时任务,避开Crawlab的坑
  • 《SPSS零基础入门教程》学习笔记——05.模型入门
  • 【代码讲解】【C/C++】获取文件最后修改的时间(系统时间)
  • Linux运维篇-yum命令报错 /lib64/libcurl.so.4相关
  • 【 亿邦动力网-注册安全分析报告】
  • ubuntu22.04 安装clamav并使用定时任务扫描
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Android系统模拟器绘制实现概述
  • classpath对获取配置文件的影响
  • HTML中设置input等文本框为不可操作
  • IP路由与转发
  • JavaScript创建对象的四种方式
  • Linux后台研发超实用命令总结
  • Otto开发初探——微服务依赖管理新利器
  • spring boot 整合mybatis 无法输出sql的问题
  • vue自定义指令实现v-tap插件
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 云大使推广中的常见热门问题
  • python最赚钱的4个方向,你最心动的是哪个?
  • 阿里云服务器如何修改远程端口?
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​人工智能书单(数学基础篇)
  • # Redis 入门到精通(七)-- redis 删除策略
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • (1)Nginx简介和安装教程
  • (2020)Java后端开发----(面试题和笔试题)
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (函数)颠倒字符串顺序(C语言)
  • (顺序)容器的好伴侣 --- 容器适配器
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • ./configure、make、make install 命令
  • .“空心村”成因分析及解决对策122344
  • .Mobi域名介绍
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .Net 基于.Net8开发的一个Asp.Net Core Webapi小型易用框架
  • .net 简单实现MD5
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .NET面试题(二)
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • @EnableWebMvc介绍和使用详细demo
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka