Swagger作为一款非常盛行的API文档生成工具,信赖许多小伙伴都在用。Swagger最为便利的当地在于,你的项目只需集成了它,一发起就能生成最新版文档,并且可以在线调试。不过Swagger的接口调试功用的确有许多缺陷,比如对JSON支撑不太友爱。今天我们运用Knife4j来增强下它,运用的是SpringDoc供应的Swagger完结库,期望对我们有所协助!

SpringBoot实战电商项目mall(50k+star)地址:github.com/macrozheng/…

聊聊Swagger的Java库

首先我们来聊聊Java中两种比较盛行的两种Swagger完结库,对比下哪个更好用。

SpringFox

SpringFox是老牌的Swagger完结库,Github上标星5.6K+,信赖许多小伙伴项目中都集成的是这个库。不过该完结库在两年前发了3.0.0版别后就再也没发版别了。 并且假设你在SpringBoot 2.6.x版别以上运用的话,会发现许多问题需求自行解决,具体可以参阅升级 SpringBoot 2.6.x 版别后,Swagger 无法用了! 。

仅需一个依靠给Swagger换上新皮肤,既简略又炫酷!

SpringDoc

SpringDoc是最近才盛行起来的Swagger完结库,Github上标星2K+,版别更新仍是很快的,维护更新有确保。之前写过一篇SpringDoc运用教程 我们可以参阅下。

SpringDoc的功用仍是挺健壮的,不仅支撑Spring WebMvc项目,还可以支撑Spring WebFlux项目。

仅需一个依靠给Swagger换上新皮肤,既简略又炫酷!

该选哪个

假设你的项目中现已集成了SpringFox并大量运用了,仍是仍然运用SpringFox吧,终究搬迁也是需求成本的。假设你的项目是新项目现在正在技术选型阶段可以考虑运用SpringDoc,终究更新维护更有确保。

SpringDoc结合Knife4j运用

Knife4j是一款Swagger UI增强库,之前一贯以为它只支撑SpringFox,最近发现它也支撑了SpringDoc。Knife4j可以无缝支撑SpringDoc,仅需增加一个依靠即可,无需批改任何用法,非常便利!

  • 这儿我们仍是运用SpringDoc运用教程 中的mall-tiny-springdocDemo,首先在pom.xml中增加Knife4j相关依靠;
<!--Knife4j的Swagger皮肤依靠-->
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-springdoc-ui</artifactId>
    <version>3.0.3</version>
</dependency>
  • 然后将项目发起起来,拜访下Knife4j的默认接口文档地址:http://localhost:8088/doc.html

仅需一个依靠给Swagger换上新皮肤,既简略又炫酷!

  • 我们找一个需求提交JSON格局恳求参数的接口调试下,发现关于JSON格局参数,Knife4j供应了格局校验功用;

仅需一个依靠给Swagger换上新皮肤,既简略又炫酷!

  • 再找个回来数据比较长的接口调试下,Knife4j供应了数据折叠功用,这两个功用的确是我们比较需求的。

仅需一个依靠给Swagger换上新皮肤,既简略又炫酷!

Knife4j微服务解决方案更新

之前出了套微服务聚合Swagger的API文档解决方案 ,也运用了Knife4j,最近把它更新支撑了最新版Spring Cloud,这儿我们再来聊聊这个解决方案。

完结原理

我们抱负的解决方案应该是这样的,网关作为API文档的一致进口,网关聚合一切微服务的文档,通过在网关进行切换来完结对其他服务API文档的拜访。

相关服务区分:

  • micro-knife4j-gateway:网关服务,作为微服务API文档的拜访进口,聚合一切API文档,需求引进文档前端UI包;
  • micro-knife4j-user:用户服务,一般API服务,不需求引进文档前端UI包;
  • micro-knife4j-order:订单服务,一般API服务,不需求引进文档前端UI包。

项目地址

github.com/macrozheng/…

总结

像Knife4j这种,不改动Swagger本来的运用,能对Swagger进行功用增强的库的确很不错。要是能多几种这种换皮肤的完结库的话,Swagger的运用体会应该会更好!

项目源码地址

github.com/macrozheng/…