Releases: xiaoymin/knife4j
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 v4.4.0 发布,OpenAPI自动注册功能实现
1、针对eureka注册中心将服务名称转大写的情况,knife4j-gateway聚合失败的处理,感谢DongLiusuoPR贡献Gitee#93
2、debug发送body请求下载的情况下返回文件乱码
3、网关聚合场景下,springdoc子服务默认default地址404的问题优化Gitee#I7RAP7
4、knife4j-gateway组件在boot3中basic密码不兼容的情况#pr652
5、SpringBoot3环境下的javax.filter的兼容性问题修复Github#667
6、OpenAPI3规范下默认无分组情况下显示分组名称的优化
7、修复SecurityDocketUtils对SecurityContext的Reference绑定错误的问题Gitee#I88IYH
8、导出的离线Html文档引用CDN源替换为国内的源Gitee#I8C85P
9、springdoc-openapi版本升级到2.3.0版本
10、spring-EnvironmentPostProcessor中存在defaultProperties与业务冲突的问题,主要是springfox兼容高版本boot的问题修复Github#686
11、针对Authorization不生效的问题请参考博客:OpenAPI3规范中添加Authorization鉴权请求Header不生效?
Knife4j v4.2.0 发布,Gateway网关聚合组件优化
大家好,Knife4j v4.2.0版本发版,本次版本发版主要解决问题:
更新日志
依赖升级
1、升级boot3版本为3.0.7、springdoc版本‣
2、springdoc版本升级,主要包括:
- 针对Spring Boot2版本的,升级springdoc版本到1.7.0
- 针对Spring Boot3版本的,springdoc版本到2.0.4
优化knife4j-gateway
组件
1、针对服务发现模式(discover
),可以动态读取服务转发路由配置前缀prefix,开发者可不用在独立配置,感谢当幸福碰错了头PR
2、支持除default
默认分组外的多分组类型,感谢谢进伟PR
3、针对在Dubbo场景下会出现聚合各个Service的场景,该版本提供自动排除服务的扩展SPI接口,开发者可集成自动扩展实现规则进行聚合服务的排除,参考Gitee#I6YLMB
@Slf4j
@Component
public class MyExcludeService implements GatewayServiceExcludeService {
@Override
public Set<String> exclude(Environment environment, Knife4jGatewayProperties properties, List<String> services) {
log.info("自定义过滤器.");
if (!CollectionUtils.isEmpty(services)){
// 排除注册中心包含order字眼的服务
return services.stream().filter(s -> s.contains("order")).collect(Collectors.toSet());
}
return new TreeSet<>();
}
}
4、解决在Nginx等二级代理转发情况下的路径错误问题Gitee#gitee、GitHub#609、[Gitee#I6KYUJ][https://gitee.com/xiaoym/knife4j/issues/I6KYUJ]、GitHub#603、GitHub#586
5、增加对子服务的排序规则设置,配置如下:
knife4j:
gateway:
tags-sorter: alpha # 接口排序规则
operations-sorter: alpha
不管是tag还是operation,排序规则主要提供两种实现方式:
- alpha:官方swagger-ui的默认排序规则实现。
- order:nife4j提供的增强排序规则,开发者可在子服务中扩展x-order,根据数值来自定义排序
6、knife4j-gateway组件增加basic验证GitHub#555
Ui更新
1、Script脚本生成的TypeScript代码增加注释Gitee#I6T78E、GitHub#568
2、OAS2新增allof特性的支持Github#PR589
3、针对jakarta
环境中Basic的属性提示已经match优化GitHub#578
增强部分
1、openapi3规范中增加对@ApiSupport
增强注解的支持Gitee#I79WIJ
2、Post发送请求query的方式修改Gitee#I7DNRP
3、优化基础jar包的引用关系,lombok、slf4j等jar包级别改为provided
GitHub#591
感谢
非常感谢以下开发者的PR贡献(排名不分先后):
Knife4j v4.1.0 发布,Gateway网关聚合更上一层楼
大家好,Knife4j v4.1.0版本发版,本次版本发版主要解决两个问题:
- 🐛常规Bug修复:主要针对v4.0版本的异常bug、ui兼容性问题修复
- 🎄Spring Cloud Gateway网关聚合组件升级:提供手动、服务发现两种模式,轻松聚合OpenAPI文档
主要更新
🐛常规bug修复
1、网关聚合组件knife4j-gateway-spring-boot-starter针对OpenAPI3规范聚合时丢失context-path的支持,在ui层面做兼容
2、springdoc-openapi版本升级到最新版本1.6.15、2.0.4 [Gitee#I6OIB1](https://gitee.com/xiaoym/knife4j/issues/I6OIB1)
3、knife4j-openapi3-jakarta-spring-boot-starter
模块属性配置在idea不提示的异常情况处理
4、增强属性自定义文档加载分组的bug处理[GitHub#PR525](https://github.com/xiaoymin/swagger-bootstrap-ui/pull/525)
5、knife4j-dependencies
模块漏掉部分依赖模块版本定义的情况
6、解决不添加 springdoc-openapi-ui 依赖异常的问题[Gitee#I66YJA](https://gitee.com/xiaoym/knife4j/issues/I66YJA)**
7、针对OAS3规范中Parameter属性缺失字段说明的异常情况修复
8、针对OAS3规范中扩展属性包括排序、作者等不生效的问题[Gitee#I6FB9I](https://gitee.com/xiaoym/knife4j/issues/I6FB9I)
9、部分字段翻译问题[GitHub#540](#540)
10、使用增强属性开启production
时出现的NPE异常[GitHub#527](#527)
11、针对OpenAPI3规范的tag名称兼容性问题[Gitee#I6JATP](https://gitee.com/xiaoym/knife4j/issues/I6JATP)
12、实体类接收url参数时文档不显示参数说明的问题[Gitee#I6H8CD](https://gitee.com/xiaoym/knife4j/issues/I6H8CD)
13、修复OAS3规范上传组件的识别问题[Gitee#I6HAW0](https://gitee.com/xiaoym/knife4j/issues/I6HAW0)、[[GitHub#538](https://github.com/xiaoymin/swagger-bootstrap-ui/issues/538)](https://github.com/xiaoymin/swagger-bootstrap-ui/issues/538)
14、SpringWebflux框架的集成组件starter封装[GitHub#521](#521)
15、针对Basic验证的特性增加include属性,允许开发者自定义配置[GitHub#530](#530)
16、全局搜索框支持tag名称的模糊搜索[Gitee#I6NWV6](https://gitee.com/xiaoym/knife4j/issues/I6NWV6)
🎄Spring Cloud Gateway网关聚合组件升级
在v4.1.0版本中,继续升级Spring Cloud Gateway网关聚合组件,提供discover
服务发现的模式,自动聚合OpenAPI文档。使用方式更加简单,一个Starter组件+yml配置,即可完成网关层的聚合。
1、引入starter依赖,maven坐标如下:
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-gateway-spring-boot-starter</artifactId>
<version>4.1.0</version>
</dependency>
2、基于discover
模式自动聚合注册中心的文档,则最简洁的配置如下:
更多场景case的使用,可以参考[knife4j-gateway-discussions](#547)
knife4j:
enable: true
# 指定服务发现的模式聚合微服务文档,并且是默认`default`分组
strategy: discover
discover:
enable: true
# 指定版本号(Swagger2|OpenAPI3)
version : openapi3
如此,我们的聚合工作就完成了。
在浏览器访问Knife4j提供的文档地址:http://ip:网关端口/doc.html
示例程序
正是由于 4.0 的文档还在输出中,因此 Knife4j 在 4.0 新版本中也提供了不同版本的示例程序
示例如下:
- Spring Boot 2.x + OpenAPI2 规范:[knife4j-spring-boot27-demo](https://gitee.com/xiaoym/swagger-bootstrap-ui-demo/tree/master/knife4j-spring-boot27-demo)
- Spring Boot 2.x +OpenAPI3 规范:[knife4j-springdoc-openapi-demo](https://gitee.com/xiaoym/swagger-bootstrap-ui-demo/tree/master/knife4j-springdoc-openapi-demo)
- Spring Boot 3+ OpenAPI3 规范:[knife4j-spring-boot3-demo](https://gitee.com/xiaoym/swagger-bootstrap-ui-demo/tree/master/knife4j-spring-boot3-demo)
- Spring Cloud Gateway网关聚合:[knife4j-openapi3-gateway](https://gitee.com/xiaoym/swagger-bootstrap-ui-demo/tree/master/knife4j-openapi3-gateway)
社区
感兴趣的朋友可以加群参与讨论贡献
关注公众号 "Knife4j",点击菜单获取加群二维码
仓库坐标
- Gitee:https://gitee.com/xiaoym/knife4j
- GitHub:[https://github.com/xiaoymin/knife4j](