Knife4j前身是swagger-bootstrap-ui,是一个为Swagger接口文档赋能的工具

文档https://xiaoym.gitee.io/knife4j/

效果(旧版)http://swagger-bootstrap-ui.xiaominfo.com/doc.html

效果(2.X版)http://knife4j.xiaominfo.com/doc.html

Giteehttps://gitee.com/xiaoym/knife4j

GitHubhttps://github.com/xiaoymin/swagger-bootstrap-ui

示例https://gitee.com/xiaoym/swagger-bootstrap-ui-demo

日志

OpenAPI3

1、在OpenAPI3.0规范中针对下载请求对象显示错误的优化Gitee#I374SP

2、针对OpenAPI3规范中对于binary类型的format属性,上传组件不显示的问题Gitee#I34NOSGitee #I3BRWT:3.0 版本文件上传不显示上传选择文本域

3、OpenAPI3.0规范中Swagger models 中的枚举显示PR #43:参数对象里属性加了required=true,文档上是否必须列依然是falseGitee #I3DP8P:枚举类型在Swagger Models 上未 能正常展示

4、针对OpenAPI3.0规范权限拦截问题增加接口地址Gitee #I2810R:3.0.2 配置生产环境屏蔽后,依然可以访问部分接口Gitee #I3HSK4:生产环境屏蔽 bug

5、针对OpenAPI3规范支持请求参数中包含$ref的问题Gitee #I2A89C:对于$ref的支持的问题

6、针对OpenAPI3规范中图片预览的问题优化Gitee #I3IUUQ:springfox 3.0.0、knife4j 3.0.2生成的api文档,调试时不能正确预览gif格式的验证码

聚合组件aggregation

1、聚合组件针对Cloud模式转发HTTP请求时,请求头重复导致转发失败的问题Gitee #PR39

2、aggregation聚合组件增加order属性,方便开发者排序设置聚合OpenAPI文档的顺序Gitee #I27ST2:使用knife4j-aggregation 聚合文档服务 支持服务名称(左上角下拉框)排序

3、aggregation聚合组件Nacos聚合微服务文档支持Nacos用户名及密码访问OpenAPI接口Gitee #I28IF9:knife4j-aggregation-spring-boot-starter的Nacos模式不支持Nacos用户名和密码。

4、聚合组件日志打印信息优化,增加isDebugEnabled逻辑判断,日志级别全部由info改为debug级别Gitee #I39QPL:关于knife4j-aggregation-spring-boot-starter日志打印级别

5、聚合组件响应Model不显示的问题Gitee #I3EMZE:Knife4jAggregation与swagger3.0 返回参数不显示

6、聚合组件没有正确响应接口的状态码信息PR #44:1.7.7版本@ApiModelProperty的required=true时ui页面显示还是false

7、基于Eureka/Nacos注册中心的聚合组件,增加心跳检测机制(30s/per),自动剔除已经下线的服务,保证聚合文档的正常访问Gitee #I2CKQT:nife4jAggregation,Nacos模式,配置10个服务,有部分服务没启动,集合服务页面打开一片空白Gitee #I2CDCK:Knife4jAggregation,Nacos模式,服务IP变更后,访问出错Gitee #I2KUUY:Knife4J Aggregation 2.0.8 集成Nacos的问题

8、Cloud模式增加心跳检测机制(30s/per),自动剔除已经下线的服务,保证聚合文档的正常访问

8、聚合组件转发文件时参数丢失的问题Gitee #I39OXE:上传图片转发 丢失文件

常规

1、OAuth2授权Content-Type的异常问题Gitee#PR35Gitee#I2CKHA

2、OAuth2判断异常的问题Gitee #PR37

3、修复离线导出Markdown文档自定义文档为undefined的问题Gitee#I2EDI8Gitee #I2WCQG:下载离线文档时,自定义文档显示为附录undef

4、日志的打印优化Gitee #I39QPL:关于knife4j-aggregation-spring-boot-starter日志打印级别

5、微服务聚合时basePath不追加的问题Gitee #I3B5BK:网关聚合 无法添加 basePath Gitee #I3EEJ3:部分接口显示的链接 丢失 basePath

6、针对List类型示例值多出换行符的问题Gitee #I2D6D4:knife4j 注解List示例值时,请求示例中多出\n

7、解决Form类型上传参数时传递Null的问题Gitee #I3AHDQ:knife4j 参数不传值,后端接收参数值为“null”字符串

8、针对个性化配置的保存问题修改逻辑,开发者通过界面保存个性化配置后丢失的问题Gitee #I27CN8:2.0.8 个性化设置配置失效Gitee #I2CBZQ:2.0.8 个性化设置刷新页面后丢失Gitee #I2978Y: 开启RequestMapping接口过滤,默认只显示POST 勾选后无效Gitee #I3IEXT:3.02 增强模式配置不生效,UI增强功能都没有了 Gitee #I3Q0MO:在网关中,设置host后刷新文档会失效Gitee #I3QSAN:缓存失效

9、针对接口分组中不存在API接口时出现链接点击空白的问题处理,如果分组下没有API接口,默认点击显示主页Gitee #I2CVTF:如果一个controller下没有任何方法, knife4j上生成这个controller菜单点击后直接跳到空白页面

10、OpenAPI规范中tags缺失时导致接口不显示的问题优化,增加default默认分组Gitee #I27M98:knife4j 3.0.2 json 缺乏tags值时,接口统计有,但接口展示出不来

11、针对服务端使用@RequestMapping注解通过method限定方法类型时,Ui增强功能过滤不生效的问题Gitee #I28RJ5:@RequestMapping中如果有method={xxx,xxx},文档的RequestMapping接口过滤就会失效

12、文件上传类型接口请求数据显示类型错误的情况改进,根据参数设置接口请求数据类型为multipart/form-dataGitee #I29KMH:2.0.8 设置接口consumes,未生效

13、优化响应html/xml/text等内容时展现方式Gitee #I2A0QA:返回结果为一个html时,会报错Network Error

14、分组下拉框搜索失效的问题Gitee #I3BAOK:knife4j-aggregation-spring-boot-starter Bug反馈

15、优化OpenAPI版本判断的逻辑,根据响应OpenAPI规范JSON再判断获取当前的规范版本,防止出现空异常或Model不显示等问题Gitee #I37X0Q:app.0f2f48b5.js:1 TypeError: Cannot read property 'indexOf' of undefinedGitee #I3EMZE:Knife4jAggregation与swagger3.0 返回参数不显示

16、针对JSON请求格式的提交,增加Beantify按钮,可以对文本格式化美化的功能Gitee #I39MUP:knife swagger新增json格式化功能

17、调试发送时增强loading效果体验Gitee #I3BG5V:knife4j 2.0.8,接口调用时loading效果不太明显,因为这个点被公司回退到了swagger2版本...

18、SwaggerModels 内容太长不会自动换行的问题Gitee #I3QC02:SwaggerModels 内容太长不会自动换行

19、针对Map属性的结构展示异常的问题Gitee #I37WB7:map展示问题

20、解决afterScript特性不能添加多个参数的问题Gitee #I3OJUW:版本2.0.8 3.0.2 ,AfterScript 不能设置多个参数

21、优化响应内容判断base64导致效率低下的问题Gitee #I2VRD5:[3.0.2] 返回结果定义三层,内存飙升并且页面卡死

22、针对增强注解@ApiOperationSupport提供的ignoreParameters属性提供正则模式的忽略策略支持Gitee #I21ZKC:ApiOperationSupport的ignoreParameters参数,是否可以支持正则表达式