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

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/251795/knife4j-4-2-0-released

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。