跳到主要内容

v4.2.0版本-2023/07/31

大家好,Knife4j v4.2.0版本发版,本次版本发版主要解决问题:

更新日志

依赖升级

1、升级boot3版本为3.0.7、springdoc版本‣

2、springdoc版本升级,主要包括:

  • 针对Spring Boot2版本的,升级springdoc版本到1.7.0
  • 针对Spring Boot3版本的,升级springdoc版本到2.1.0

优化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#giteeGitHub#609[Gitee#I6KYUJ][https://gitee.com/xiaoym/knife4j/issues/I6KYUJ]GitHub#603GitHub#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#I6T78EGitHub#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包级别改为providedGitHub#591

感谢

非常感谢以下开发者的PR贡献(排名不分先后):