Swagger-knife4j 介绍
Knife4j
的前身是swagger-bootstrap-ui
,前身swagger-bootstrap-ui
是一个纯swagger-ui
的ui
皮肤项目
一开始项目初衷是为了写一个增强版本的 swagger 的前端 ui,但是随着项目的发展,面对越来越多的个性化需求,不得不编写后端 Java 代码以满足新的需求,在swagger-bootstrap-ui
的 1.8.5~1.9.6 版本之间,采用的是后端 Java 代码和 Ui 都混合在一个 Jar 包里面的方式提供给开发者使用.这种方式虽说对于集成 swagger 来说很方便,只需要引入 jar 包即可,但是在微服务架构下显得有些臃肿。
因此,项目正式更名为 knife4j,取名 knife4j 是希望她能像一把匕首一样小巧,轻量,并且功能强悍,更名也是希望把她做成一个为 Swagger 接口文档服务的通用性解决方案,不仅仅只是专注于前端 Ui 前端.
swagger-bootstrap-ui
的所有特性都会集中在knife4j-spring-ui
包中,并且后续也会满足开发者更多的个性化需求.
主要的变化是,项目的相关类包路径更换为com.github.xiaoymin.knife4j
前缀,开发者使用增强注解时需要替换包路径
后端 Java 代码和 ui 包分离为多个模块的 jar 包,以面对在目前微服务架构下,更加方便的使用增强文档注解(使用 SpringCloud 微服务项目,只需要在网关层集成 UI 的 jar 包即可,因此分离前后端)
knife4j 沿用swagger-bootstrap-ui
的版本号,第 1 个版本从 1.9.6 开始。
目前主要支持以 Java 开发为主,并且是依赖于大环境下使用的Spring MVC
、Spring Boot
、Spring Cloud
框架.
当然,Knife4j
也提供了离线版本,只要是符合 Swagger 的 OpenAPI 版本的规范 JSON,都可以通过简单的配置进行适配,离线版本是适合于任何语言中使用 Swagger 的,非常的灵活、方便。
Knife4j 采用 Vue+And Design Vue 组件重写,相关功能界面如下,供大家赏鉴:
接口文档显示界面如下:
接口调试界面如下:
Swagger Models 功能
支持导出离线 Markdown、Html 功能,markdown 的表格较原先版本通过缩减显示为树形结构,点击预览导出离线Html效果 (opens new window),效果图如下:
通过第三方 Markdown 软件导出的 PDF 效果如下图:
同时提供了导出离线 Html 功能,Html 功能界面风格和在线几乎没有区别,美观、大方、简洁,点击在线预览效果 (opens new window),
界面效果如下图:
版权声明: 本文为 InfoQ 作者【默默的成长】的原创文章。
原文链接:【http://xie.infoq.cn/article/391ffef05ee874a935e89eae1】。未经作者许可,禁止转载。
评论