Swagger增强神器:Knife4j!用它轻松实现接口搜索、Word下载、接口过滤...

视频版内容:

Swagger 是开发中最常用的框架之一了,但 Swagger 本身又有很多不完善的地方,比如,在众多的接口中查询某一个接口,又或者是把所有的接口导出成 Word 格式等,都无法在 Swagger 中实现。

有人可能会问:为什么要把接口导成 Word 格式?这种场景还挺常见的,比如需要将接口对外部公司开放时,又或者是开发环境的网络不能对外部开放(如专线,很多医院都拉的是专线),而生产环境的 Swagger 又是关闭状态的时候,这时候只能依赖离线文档来实现接口的调用了,而离线文档最常用的格式便是 Word 了。

那么为了解决 Swagger 的这些问题,我们需要使用一个 Swagger 的增强工具来实现,而这个扩展工具就是我们今天要重点介绍的 Knife4j,那 Knife4j 长得是什么样呢?我们一起来看,如下图所示:

从这个主页可以看出,Knife4j 会将 Swagger 中设置的摘要信息(Docket)显示在欢迎页,Docket 的设置可以看我之前的文章,并且 Knife4j 还很贴心的提供了一个统计所有接口的功能,在欢迎页的最下方我们可以很清楚的看到当前 POST 接口的数量,以及 GET 的接口的数量。

PS:Knife4j 支持中文和英文两种语言展示,对于国内的小伙伴来说,可读性非常的高(因为都是中文的嘛)。

Knife4j 功能介绍

1.搜索功能

我觉得 Knife4j 最实用的一个功能就是“接口搜索”了,通过这个功能我们可以非常方便的找到我们需要的接口,如下图所示:

2.离线文档下载

Knife4j 提供了 4 种格式的离线文档下载:Markdown、Html、Word、OpenAPI 等方式,如下图所示:

3.接口过滤

可以通过 Knife4j 过滤某一类型的接口,比如过滤 GET 或者 POST 接口,如下图所示:

4.全局参数设置

如果有公共的请求参数,我们可以通过 Knife4j 轻松搞定,如下图所示:

5.更友好的接口调试

使用 Knife4j 可以更友好的实现接口调试,因为在使用 Knife4j 时,它会将必传的参数以红色边框的方式显示,这样我们就直观的区分开必填参数和非必填参数了,如下图所示:

Knife4j 使用配置

从上面的内容可以看出 knife4j 的功能是很强大的,但令我更惊喜的是它的配置异常的简单,我们只需在已经成功配置了 Swagger 的项目中(Swagger 配置可参考我的上一篇文章),添加 Knife4j 的依赖即可,配置信息如下:

<!-- https://mvnrepository.com/artifact/com.github.xiaoymin/knife4j-spring-boot-starter -->
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.2</version>
</dependency>

经过以上简单的依赖添加之后,无需配置任何内容,我们就可以成功的使用 Knife4j 了。

访问 Knife4j

我们可以通过 http://localhost:8080/doc.html 访问 Knife4j 的主页,如下图所示:

总结

Swagger 作为非常欢迎的框架同时也存在着一些功能“缺陷”,那么为了弥补 Swagger 的不足,我们引入了 Knife4j 框架,使用 Knife4j 我们可以很方便的实现:接口搜索、离线文档下载、全局参数设置、接口过滤和更加友好的接口测试等功能。然而和它的功能同样令人惊讶的是它的配置,在使用 Knife4j 时,我们只需要在项目中添加它的引用,之后无需任何多余的操作就可以直接使用 Knife4j 了,简直完美,所以你不来试一试吗?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/544908.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tohexstring方法_Java Long类toHexString()方法的示例

tohexstring方法长类toHexString()方法 (Long class toHexString() method) toHexString() method is available in java.lang package. toHexString()方法在java.lang包中可用。 toHexString() method is used to represent a hexadecimal string of the given parameter [val…

关于显示和隐藏DIV标签

document.getElementById("DIV的ID").style.display"none";//隐藏 document.getElementById("DIV的ID").style.display"block";//显示

7种可能会导致内存泄漏的场景!

虽然Java程序员不用像C/C程序员那样时刻关注内存的使用情况&#xff0c;JVM会帮我们处理好这些&#xff0c;但并不是说有了GC就可以高枕无忧&#xff0c;内存泄露相关的问题一般在测试的时候很难发现&#xff0c;一旦上线流量起来可能马上就是一个诡异的线上故障。1. 内存泄露的…

logstash 过虑nginx访问日志

标题是不是可以翻译成这样&#xff1a;logstash Filters nginx access log好了&#xff0c;进入正题&#xff0c;日志管理服务器我用ElasticSearchLogStashKibanaRedis先说下我的架构&#xff1a;远程NGINX采集日志数据到REDISlogstashelasticsearchkibana服务器至于怎么部署&a…

java 方法 示例_Java语言环境getISOLanguages()方法与示例

java 方法 示例区域设置类getISOLanguages()方法 (Locale Class getISOLanguages() method) getISOLanguages() method is available in java.util package. getISOLanguages()方法在java.util包中可用。 getISOLanguages() method is used to return an array of string that …

struts2显示列表序号的办法

http://blog.knowsky.com/226680.htm 有的时候需要在页面上进行计算&#xff0c;比如要显示十条数据并且十条数据前要有显示123456……的序号&#xff0c;解决这个问题有两种办法。第一种是通过set标签实现&#xff1a; <s:set name"a" value1/> <s:ite…

Spring中的重试功能!嗯,有点东西

来源&#xff1a;https://albenw.github.io/posts/69a9647f/概要Spring实现了一套重试机制&#xff0c;功能简单实用。Spring Retry是从Spring Batch独立出来的一个功能&#xff0c;已经广泛应用于Spring Batch,Spring Integration, Spring for Apache Hadoop等Spring项目。 本…

关于Shell的一些常用命令

2019独角兽企业重金招聘Python工程师标准>>> ls -lat 列出当前目录所有东东的东东 ls -lath 人看的大小 ls -F | grep "/$"只搞目录 ls -lR 包括子目录… ls --ignore filename -lt 忽略某个 which&#xff0c;在PATH变量指定的路径中&#xff0c;搜索看某…

linkedhashset_Java LinkedHashSet contains()方法与示例

linkedhashsetLinkedHashSet类contains()方法 (LinkedHashSet Class contains() method) contains() method is available in java.util package. contains()方法在java.util包中可用。 contains() method is used to check whether the given object (ob) exists or not exist…

Listener refused the connection with the following error 错误解决(最大连接数)

查询数据库当前进程的连接数&#xff1a;   select count(*) from v$process;   查看数据库当前会话的连接数&#xff1a;   elect count(*) from v$session;   查看数据库的并发连接数&#xff1a;   select count(*) from v$session where statusACTIVE;…

用Netty撸一个心跳机制和断线重连!

来源&#xff1a;www.jianshu.com/p/1a28e48edd92心跳机制何为心跳所谓心跳, 即在 TCP 长连接中, 客户端和服务器之间定期发送的一种特殊的数据包, 通知对方自己还在线, 以确保 TCP 连接的有效性.注&#xff1a;心跳包还有另一个作用&#xff0c;经常被忽略&#xff0c;即&…

ThreadLocal线程范围内的共享变量

模拟ThreadLocal类实现&#xff1a;线程范围内的共享变量&#xff0c;每个线程只能访问他自己的&#xff0c;不能访问别的线程。 package com.ljq.test.thread;import java.util.HashMap; import java.util.Map; import java.util.Random;/*** 线程范围内的共享变量* * 三个模块…

Java LineNumberReader reset()方法及示例

LineNumberReader类的reset()方法 (LineNumberReader Class reset() method) reset() method is available in java.io package. reset()方法在java.io包中可用。 reset() method is used to reset this LineNumberReader stream to the position of the most recent mark was …

Html 按钮button加超链接

http://blog.csdn.net/maxracer/article/details/6409437 1.页面转向新的页面: <input type"button" οnclick"window.location.href(连接)"> 2.需要打开一个新的页面进行转向: <input type"button" οnclick"window.open(连接)&…

Java中操作Excel的3种方法,太好用了!

一、介绍在平时的业务系统开发中&#xff0c;少不了需要用到导出、导入excel功能&#xff0c;今天我们就一起来总结一下&#xff0c;如果你正为此需求感到困惑&#xff0c;那么阅读完本文&#xff0c;你一定会有所收获&#xff01;二、poi大概在很久很久以前&#xff0c;微软的…

代理服务器Tengine的研究与测试

代理服务器Tengine的研究与测试一、Tengine介绍1.首先要知道什么Nginx1)Nginx&#xff08;发音同 engine x&#xff09;是一款轻量级的Web 服务器&#xff0f;反向代理服务器及电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器&#xff0c;并在一个BSD-like 协议下发行。由…

Java Integer类toString()方法与示例

Syntax: 句法&#xff1a; public String toString();public static String toString(int value);public static String toString(int value, int radixs);整数类toString()方法 (Integer class toString() method) toString() method is available in java.lang package. toS…

不错!SpringBoot发布Jar包优化瘦身指南!

概要说明随着Spring Boot的流行&#xff0c;大家体验到只需构建输出一个jar文件&#xff0c;然后只需一个java -jar命令就能部署运行应用的爽快。常见一些单体应用随着项目规模的扩展单个jar文件的大小越来越大&#xff0c;动辄两三百MB。如果再引入微服务架构&#xff0c;动辄…

Jsp中使用数据库连接池

1. 在tomcat服务器目录下面的conf中找到一个叫Context.xml的配置文件&#xff0c;在其中加入以下代码 <Resource name"jdbc/books"auth"Container" type"javax.sql.DataSource"maxActive"100"maxIdle"30"maxWait"10…

Java IdentityHashMap values()方法与示例

IdentityHashMap类values()方法 (IdentityHashMap Class values() method) values() method is available in java.util package. values()方法在java.util包中可用。 values() method is used to return the values exist in this IdentityHashMap to be viewed in a Collecti…