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贡献(排名不分先后):