Knife4j 4.5.0 版本发布,助力橙单低代码平台 OpenAPI3.0 规范顺利落地
本次迭代
4.5.0版本主要更新如下:
1、前端i18n增加对日语的支持,感谢一堃通行 ,Gitee#PR98
2、修复EnvironmentPostProcessor中存在defaultProperties与业务冲突的问题,感谢leilei,Gitee#PR100
3、修复addOrderExtension方法报错空指针问题,感谢doublek24Gitee#PR99
4、Spring Boot3 中排序order不生效的问题
5、OpenAPI3规范中未配置springdoc.group-configs.packages-to-scan
属性导致的空指针异常Gitee#I8O7E8
6、实体参数,@Schema
的description属性显示的异常问题Gitee#I8EVO3、Github#690
7、OpenAPI3规范请求类型针对format
属性的展示问题Gitee#I8KRWV
8、自定义文档】多服务聚合后如果服务名包含"-"会导致自定义文档页刷新报错Gitee#I8EKAQ
9、移除文档favicon.ico
的引用Github#716
橙单企业级插件支持
背景
橙单低代码平台作为Knife4j
组件的老朋友,对于Knife4j的推广,应用都提供了极大的帮助和反馈,此次针对橙单低代码平台针对Spring Boot3+OpenAPI3版本的兼容适配,Knife4j也是提供了很好的支撑。
在做企业级插件需求介绍前,先给大家介绍下橙单低代码平台
橙单低代码平台简介:
- 橙单代码生成工具,可导入多数据源和复杂的表关系,并生成开箱即用的前后端工程代码。
- 生成后工程代码全部采用主流技术栈搭建,完全遵循阿里巴巴编码规范。
- 较高的代码注释率,完整的开发部署手册和系列教程,可帮您快速上手完成后续的二次开发工作。
- VIP 服务和技术交流群,提供在线问题解答,并将您的合理反馈,及时更新到下一版本。
主要技术特点:
- 前后端技术栈可根据项目规模和客户偏好按需选择,生成后代码保持统一的接口定义规则。
- 前端模板支持基于 Fragment 和 Block 的灵活布局方式,通过配置即可生成多样化的表单页面。
- 高质量的前后端工程代码,产品级的代码细节打磨和性能优化,近乎于 0 的代码重复率。
- 前沿的单表组合式查询,为数据库减负,让您的系统在 PaaS 云平台运行时更具伸缩性。
- 创新式生成基于主表模式的规范化服务间调用接口,服务组合像搭积木一样轻巧自如。
- 提供高可配置性的用户权限管理模块,目前已支持按钮级操作权限和标签级显示权限。
- 菜单级数据过滤权限,多种过滤策略任意组合。Mybatis 拦截器 + JSqlParser 组合,让代码侵入性将至最低。
- 支持定时任务代码生成,如流水表及其关联表分组聚合计算后批量刷新到统计表。
- 通过基于qdox的代码分析结果,可以 0 注解生成高准确度的 Postman API 接口文档
官网地址:http://www.orangeforms.com/
需求支撑
在橙单低代码平台中,对于接口的请求请求,橙单做了一层自定义的注解,可以方便开发者以JSON方式提交数据,代码示例如下:
@Operation(summary = "测试一下-MyRequestBody") @PostMapping(value = "/test/module/upload") public ResponseEntity<MyBodyTest> test(@MyRequestBody FileRequestVo fileRequestVo, @MyRequestBody FileResp fileResp, HttpServletResponse response){ MyBodyTest myBodyTest=new MyBodyTest(); myBodyTest.setFileResp(fileResp); myBodyTest.setRequestVo(fileRequestVo); return ResponseEntity.ok(myBodyTest); }
橙单提供了自定义注解@MyRequestBody
,对于请求参数,可以直接以JSON方式进行请求,而无需定义实体类,最终OpenAPI的接口效果展示如下图:
通过基于Knife4j个性化插件的支持+OpenAPI3规范的扩展,完成橙单企业级插件的兼容适配,方便橙单的用户能够在Spring Boot3+OpenAPI3规范的场景下,很好的使用Knife4j的接口文档展示。
解决方案
基于Springdoc-openapi项目提供的GlobalOperationCustomizer
钩子函数,提供对扩展属性的支持。
springdoc-openapi项目提供了两大核心扩展接口:
- 🏜️
GlobalOperationCustomizer
:针对Operation级别的全局自定义扩展钩子函数,开发者可以对接口中每一个Operation进行扩展自定义实现,或调整,或修改,或增加扩展都行,Knife4j的部分增强特性就是基于此函数实现,可以参考代码Knife4jJakartaOperationCustomizer.java - 🏝️
GlobalOpenApiCustomizer
:是针对整个OpenAPI级别的,开发者在分组或者分包后,得到的单个OpenAPI实例,开发者可以操纵全局的OpenAPI实例,该OpenAPI对象已经是springdoc解析过的实例对象,例如该issues中的需求,开发者只需要自定义创建新Operation对象,然后通过OpenAPI实例对象进行add添加即可完成此需求,部分扩展可以参考代码:Knife4jOpenApiCustomizer.java - 🎠 扩展实现类接口后,注入Spring的容器中即可
详情代码可参考:knife4j-orangeforms-boot3-openapi3
最后
本次4.5.0版本的发布,除了解决一些常规的issues问题,也是非常感谢橙单低代码平台的大力支持
大家如果有低代码平台的需求,可以考虑一下橙单低代码平台!!!
官网地址:http://www.orangeforms.com/
当然,如果对于Knife4j对于各个企业级插件的需求支持,也欢迎大家通过issues或者平台进行反馈!!!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Linux Kernel 6.7 正式发布
Linus 在内核邮件列表宣布正式推出 Linux Kernel 6.7。 据称此版本是有史以来合并数最多的版本之一,包含 17k+ 个非合并 commit,实际合并的超过 1000 个。 主要变化 主线内核已合并实验性 Bcachefs 文件系统 现在默认启用 Intel Meteor Lake 显卡支持 在 x86-64 内核上启用/禁用 32 位模拟的选项 KVM 支持 LoongArch 虚拟化 KVM on RISC-V 支持 Smstateen 扩展 默认启用 Intel Meteor Lake 图形支持,同时还引入了针对 Intel Xe2Lunar Lake 图形的支持 为Nouveau 开源图形驱动程序新增对 NVIDIA GPU 系统处理器(GSP)固件的支持,从而带来更好的电源管理性能,还包括 Nouveau 设置中的 RTX 40 加速 USB Type-C 驱动现已支持 DP Alt Mode 2.1 AMD Seamless Boot 现适用于更多 AMD 硬件 F2FS 现已支持更大的页面大小 Btrfs 功能增强,例如添加了 FSID(临时文件系统 ID...
- 下一篇
DBeaver 23.3.2 发布
DBeaver 是一个免费开源的通用数据库工具,适用于开发人员和数据库管理员。DBeaver 23.3.1 现已发布,更新内容如下: Metadata editor: 重新设计了新的数据库对象向导 主键/唯一键可以与新列一起自动创建 SQL Editor: 添加了 SQL 查询结构的大纲查看器 执行时间格式得到改进 工具栏自定义页面打开已修复 Identifiers coloring 得到改进 修复了多行注释的自动完成功能 Accessibility:可以使用屏幕阅读器(JAW、NVDA 或 Narrator)阅读通知 ER Diagram:添加了连接错误处理 Data Transfer:设置中的错误链接已修复 AI:legacyOpenAI 模型已被删除 General: 修复了指向帮助文章的错误链接 从上下文菜单中删除了冗余项目 全局网络设置首选项页面再次可用 Databases: ClickHouse:Leagacy驱动程序配置已修复 Dameng:支持tablespaces Google Cloud SQL:从上下文菜单中删除了冗余选项 MySQL:添加了 TLS 1.3 支持...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程