Skip to content

Releases: xiaoymin/knife4j

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

08 Jan 02:55
Compare
Choose a tag to compare

本次迭代

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#I8EVO3Github#690

7、OpenAPI3规范请求类型针对format属性的展示问题Gitee#I8KRWV

8、自定义文档】多服务聚合后如果服务名包含"-"会导致自定义文档页刷新报错Gitee#I8EKAQ

9、移除文档favicon.ico的引用Github#716

Knife4j v4.4.0 发布,OpenAPI自动注册功能实现

10 Dec 10:53
Compare
Choose a tag to compare

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网关聚合组件优化

01 Aug 00:58
Compare
Choose a tag to compare

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

Knife4j v4.1.0 发布,Gateway网关聚合更上一层楼

24 Mar 00:50
Compare
Choose a tag to compare

大家好,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 新版本中也提供了不同版本的示例程序

示例如下:

社区

感兴趣的朋友可以加群参与讨论贡献

关注公众号 "Knife4j",点击菜单获取加群二维码

输入图片说明

仓库坐标