Skip to content

Commit 030ad00

Browse files
committed
docs:更新日志
1 parent c77ca94 commit 030ad00

File tree

3 files changed

+99
-0
lines changed

3 files changed

+99
-0
lines changed
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# v4.5.0版本-2024/01/08
2+
3+
Knife4j 4.5.0版本发布,助力橙单低代码平台OpenAPI3.0规范顺利落地
4+
5+
## 本次迭代
6+
7+
4.5.0版本主要更新如下:
8+
9+
1、前端i18n增加对日语的支持,感谢[一堃通行](https://gitee.com/mao-junkun) ,[Gitee#PR98](https://gitee.com/xiaoym/knife4j/pulls/98)
10+
11+
2、修复EnvironmentPostProcessor中存在defaultProperties与业务冲突的问题,感谢leilei,[Gitee#PR100](https://gitee.com/xiaoym/knife4j/pulls/100)
12+
13+
3、修复addOrderExtension方法报错空指针问题,感谢doublek24[Gitee#PR99](https://gitee.com/xiaoym/knife4j/pulls/99)
14+
15+
4、Spring Boot3 中排序order不生效的问题
16+
17+
5、OpenAPI3规范中未配置`springdoc.group-configs.packages-to-scan`属性导致的空指针异常[Gitee#I8O7E8](https://gitee.com/xiaoym/knife4j/issues/I8O7E8)
18+
19+
6、实体参数,`@Schema`的description属性显示的异常问题[Gitee#I8EVO3](https://gitee.com/xiaoym/knife4j/issues/I8EVO3)[Github#690](https://github.com/xiaoymin/knife4j/issues/690)
20+
21+
7、OpenAPI3规范请求类型针对`format`属性的展示问题[Gitee#I8KRWV](https://gitee.com/xiaoym/knife4j/issues/I8KRWV)
22+
23+
8、自定义文档】多服务聚合后如果服务名包含"-"会导致自定义文档页刷新报错[Gitee#I8EKAQ](https://gitee.com/xiaoym/knife4j/issues/I8EKAQ)
24+
25+
9、移除文档`favicon.ico`的引用[Github#716](https://github.com/xiaoymin/knife4j/issues/716)
26+
27+
## 橙单企业级插件支持
28+
29+
### 背景
30+
31+
**橙单低代码平台**作为`Knife4j`组件的老朋友,对于Knife4j的推广,应用都提供了极大的帮助和反馈,此次针对橙单低代码平台针对Spring Boot3+OpenAPI3版本的兼容适配,Knife4j也是提供了很好的支撑。
32+
33+
在做企业级插件需求介绍前,先给大家介绍下橙单低代码平台
34+
35+
**橙单低代码**平台简介:
36+
37+
- 橙单代码生成工具,可导入多数据源和复杂的表关系,并生成开箱即用的前后端工程代码。
38+
- 生成后工程代码全部采用主流技术栈搭建,完全遵循阿里巴巴编码规范。
39+
- 较高的代码注释率,完整的开发部署手册和系列教程,可帮您快速上手完成后续的二次开发工作。
40+
- VIP 服务和技术交流群,提供在线问题解答,并将您的合理反馈,及时更新到下一版本。
41+
42+
主要技术特点:
43+
44+
- 前后端技术栈可根据项目规模和客户偏好按需选择,生成后代码保持统一的接口定义规则。
45+
- 前端模板支持基于 Fragment 和 Block 的灵活布局方式,通过配置即可生成多样化的表单页面。
46+
- 高质量的前后端工程代码,产品级的代码细节打磨和性能优化,近乎于 0 的代码重复率。
47+
- 前沿的单表组合式查询,为数据库减负,让您的系统在 PaaS 云平台运行时更具伸缩性。
48+
- 创新式生成基于主表模式的规范化服务间调用接口,服务组合像搭积木一样轻巧自如。
49+
- 提供高可配置性的用户权限管理模块,目前已支持按钮级操作权限和标签级显示权限。
50+
- 菜单级数据过滤权限,多种过滤策略任意组合。Mybatis 拦截器 + JSqlParser 组合,让代码侵入性将至最低。
51+
- 支持定时任务代码生成,如流水表及其关联表分组聚合计算后批量刷新到统计表。
52+
- 通过基于qdox的代码分析结果,可以 0 注解生成高准确度的 Postman API 接口文档
53+
54+
官网地址:[http://www.orangeforms.com/](http://www.orangeforms.com/)
55+
56+
### 需求支撑
57+
58+
在橙单低代码平台中,对于接口的请求请求,橙单做了一层自定义的注解,可以方便开发者以JSON方式提交数据,代码示例如下:
59+
60+
```java
61+
62+
@Operation(summary = "测试一下-MyRequestBody")
63+
@PostMapping(value = "/test/module/upload")
64+
public ResponseEntity<MyBodyTest> test(@MyRequestBody FileRequestVo fileRequestVo, @MyRequestBody FileResp fileResp, HttpServletResponse response){
65+
MyBodyTest myBodyTest=new MyBodyTest();
66+
myBodyTest.setFileResp(fileResp);
67+
myBodyTest.setRequestVo(fileRequestVo);
68+
return ResponseEntity.ok(myBodyTest);
69+
}
70+
```
71+
72+
橙单提供了自定义注解`@MyRequestBody`,对于请求参数,可以直接以JSON方式进行请求,而无需定义实体类,最终OpenAPI的接口效果展示如下图:
73+
74+
![图1-橙单Plugin支持效果图](/images/changelog/4_5/image-20240107233830487.png)
75+
76+
通过基于Knife4j个性化插件的支持+OpenAPI3规范的扩展,完成橙单企业级插件的兼容适配,方便橙单的用户能够在Spring Boot3+OpenAPI3规范的场景下,很好的使用Knife4j的接口文档展示。
77+
78+
### 解决方案
79+
80+
基于Springdoc-openapi项目提供的`GlobalOperationCustomizer`钩子函数,提供对扩展属性的支持。
81+
82+
springdoc-openapi项目提供了两大核心扩展接口:
83+
84+
- 🏜️ `GlobalOperationCustomizer`:针对Operation级别的全局自定义扩展钩子函数,开发者可以对接口中每一个Operation进行扩展自定义实现,或调整,或修改,或增加扩展都行,Knife4j的部分增强特性就是基于此函数实现,可以参考代码[Knife4jJakartaOperationCustomizer.java](https://gitee.com/xiaoym/knife4j/blob/dev/knife4j/knife4j-openapi3-jakarta-spring-boot-starter/src/main/java/com/github/xiaoymin/knife4j/spring/extension/Knife4jJakartaOperationCustomizer.java)
85+
- 🏝️ `GlobalOpenApiCustomizer`:是针对整个OpenAPI级别的,开发者在分组或者分包后,得到的单个OpenAPI实例,开发者可以操纵全局的OpenAPI实例,该OpenAPI对象已经是springdoc解析过的实例对象,例如该issues中的需求,开发者只需要自定义创建新Operation对象,然后通过OpenAPI实例对象进行add添加即可完成此需求,部分扩展可以参考代码:[Knife4jOpenApiCustomizer.java](https://gitee.com/xiaoym/knife4j/blob/dev/knife4j/knife4j-openapi3-jakarta-spring-boot-starter/src/main/java/com/github/xiaoymin/knife4j/spring/extension/Knife4jOpenApiCustomizer.java)
86+
- 🎠 扩展实现类接口后,注入Spring的容器中即可
87+
88+
详情代码可参考:[knife4j-orangeforms-boot3-openapi3](https://gitee.com/xiaoym/swagger-bootstrap-ui-demo/tree/master/knife4j-orangeforms-boot3-openapi3)
89+
90+
## 最后
91+
92+
本次4.5.0版本的发布,除了解决一些常规的issues问题,也是非常感谢橙单低代码平台的大力支持
93+
94+
大家如果有低代码平台的需求,可以考虑一下橙单低代码平台!!!
95+
96+
官网地址:[http://www.orangeforms.com/](http://www.orangeforms.com/)
97+
98+
当然,如果对于Knife4j对于各个企业级插件的需求支持,也欢迎大家通过issues或者平台进行反馈!!!

knife4j-doc/docs/changelog/index.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ description: Knife4j发版本日志
1313

1414
| 新闻标题 | 发布时间 |
1515
| ------------------------------------------------------------ | ---------- |
16+
| [Knife4j 4.5.0版本发布,助力橙单低代码平台OpenAPI3.0规范顺利落地](changelog/x/4.5) | 2024-01-08 |
1617
| [Knife4j v4.4.0 发布,OpenAPI自动注册功能实现](changelog/x/4.4) | 2023-12-10 |
1718
| [Knife4j v4.3.0 发布,深挖Gateway网关聚合场景,解决各种疑难杂症](changelog/x/4.3) | 2023-08-06 |
1819
| [Knife4j v4.2.0 发布,优化Gateway聚合组件](changelog/x/4.2) | 2023-07-31 |
270 KB
Loading

0 commit comments

Comments
 (0)