Skip to content

Commit

Permalink
docs:更新日志
Browse files Browse the repository at this point in the history
  • Loading branch information
xiaoymin committed Jan 8, 2024
1 parent c77ca94 commit 030ad00
Show file tree
Hide file tree
Showing 3 changed files with 99 additions and 0 deletions.
98 changes: 98 additions & 0 deletions knife4j-doc/docs/changelog/4.x/4.5.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# v4.5.0版本-2024/01/08

Knife4j 4.5.0版本发布,助力橙单低代码平台OpenAPI3.0规范顺利落地

## 本次迭代

4.5.0版本主要更新如下:

1、前端i18n增加对日语的支持,感谢[一堃通行](https://gitee.com/mao-junkun) ,[Gitee#PR98](https://gitee.com/xiaoym/knife4j/pulls/98)

2、修复EnvironmentPostProcessor中存在defaultProperties与业务冲突的问题,感谢leilei,[Gitee#PR100](https://gitee.com/xiaoym/knife4j/pulls/100)

3、修复addOrderExtension方法报错空指针问题,感谢doublek24[Gitee#PR99](https://gitee.com/xiaoym/knife4j/pulls/99)

4、Spring Boot3 中排序order不生效的问题

5、OpenAPI3规范中未配置`springdoc.group-configs.packages-to-scan`属性导致的空指针异常[Gitee#I8O7E8](https://gitee.com/xiaoym/knife4j/issues/I8O7E8)

6、实体参数,`@Schema`的description属性显示的异常问题[Gitee#I8EVO3](https://gitee.com/xiaoym/knife4j/issues/I8EVO3)[Github#690](https://github.com/xiaoymin/knife4j/issues/690)

7、OpenAPI3规范请求类型针对`format`属性的展示问题[Gitee#I8KRWV](https://gitee.com/xiaoym/knife4j/issues/I8KRWV)

8、自定义文档】多服务聚合后如果服务名包含"-"会导致自定义文档页刷新报错[Gitee#I8EKAQ](https://gitee.com/xiaoym/knife4j/issues/I8EKAQ)

9、移除文档`favicon.ico`的引用[Github#716](https://github.com/xiaoymin/knife4j/issues/716)

## 橙单企业级插件支持

### 背景

**橙单低代码平台**作为`Knife4j`组件的老朋友,对于Knife4j的推广,应用都提供了极大的帮助和反馈,此次针对橙单低代码平台针对Spring Boot3+OpenAPI3版本的兼容适配,Knife4j也是提供了很好的支撑。

在做企业级插件需求介绍前,先给大家介绍下橙单低代码平台

**橙单低代码**平台简介:

- 橙单代码生成工具,可导入多数据源和复杂的表关系,并生成开箱即用的前后端工程代码。
- 生成后工程代码全部采用主流技术栈搭建,完全遵循阿里巴巴编码规范。
- 较高的代码注释率,完整的开发部署手册和系列教程,可帮您快速上手完成后续的二次开发工作。
- VIP 服务和技术交流群,提供在线问题解答,并将您的合理反馈,及时更新到下一版本。

主要技术特点:

- 前后端技术栈可根据项目规模和客户偏好按需选择,生成后代码保持统一的接口定义规则。
- 前端模板支持基于 Fragment 和 Block 的灵活布局方式,通过配置即可生成多样化的表单页面。
- 高质量的前后端工程代码,产品级的代码细节打磨和性能优化,近乎于 0 的代码重复率。
- 前沿的单表组合式查询,为数据库减负,让您的系统在 PaaS 云平台运行时更具伸缩性。
- 创新式生成基于主表模式的规范化服务间调用接口,服务组合像搭积木一样轻巧自如。
- 提供高可配置性的用户权限管理模块,目前已支持按钮级操作权限和标签级显示权限。
- 菜单级数据过滤权限,多种过滤策略任意组合。Mybatis 拦截器 + JSqlParser 组合,让代码侵入性将至最低。
- 支持定时任务代码生成,如流水表及其关联表分组聚合计算后批量刷新到统计表。
- 通过基于qdox的代码分析结果,可以 0 注解生成高准确度的 Postman API 接口文档

官网地址:[http://www.orangeforms.com/](http://www.orangeforms.com/)

### 需求支撑

在橙单低代码平台中,对于接口的请求请求,橙单做了一层自定义的注解,可以方便开发者以JSON方式提交数据,代码示例如下:

```java

@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的接口效果展示如下图:

![图1-橙单Plugin支持效果图](/images/changelog/4_5/image-20240107233830487.png)

通过基于Knife4j个性化插件的支持+OpenAPI3规范的扩展,完成橙单企业级插件的兼容适配,方便橙单的用户能够在Spring Boot3+OpenAPI3规范的场景下,很好的使用Knife4j的接口文档展示。

### 解决方案

基于Springdoc-openapi项目提供的`GlobalOperationCustomizer`钩子函数,提供对扩展属性的支持。

springdoc-openapi项目提供了两大核心扩展接口:

- 🏜️ `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)
- 🏝️ `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)
- 🎠 扩展实现类接口后,注入Spring的容器中即可

详情代码可参考:[knife4j-orangeforms-boot3-openapi3](https://gitee.com/xiaoym/swagger-bootstrap-ui-demo/tree/master/knife4j-orangeforms-boot3-openapi3)

## 最后

本次4.5.0版本的发布,除了解决一些常规的issues问题,也是非常感谢橙单低代码平台的大力支持

大家如果有低代码平台的需求,可以考虑一下橙单低代码平台!!!

官网地址:[http://www.orangeforms.com/](http://www.orangeforms.com/)

当然,如果对于Knife4j对于各个企业级插件的需求支持,也欢迎大家通过issues或者平台进行反馈!!!
1 change: 1 addition & 0 deletions knife4j-doc/docs/changelog/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ description: Knife4j发版本日志

| 新闻标题 | 发布时间 |
| ------------------------------------------------------------ | ---------- |
| [Knife4j 4.5.0版本发布,助力橙单低代码平台OpenAPI3.0规范顺利落地](changelog/x/4.5) | 2024-01-08 |
| [Knife4j v4.4.0 发布,OpenAPI自动注册功能实现](changelog/x/4.4) | 2023-12-10 |
| [Knife4j v4.3.0 发布,深挖Gateway网关聚合场景,解决各种疑难杂症](changelog/x/4.3) | 2023-08-06 |
| [Knife4j v4.2.0 发布,优化Gateway聚合组件](changelog/x/4.2) | 2023-07-31 |
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 030ad00

Please sign in to comment.