knife4j(swagger的升级版)使用

目前很多的后台都开始使用swagger来写文档接口了,但是swagger有很多限制:

1、swagger不支持头部自定义加入参数,如果是头部有token等之类参数要放入时swagger就无法调试接口了,只有看的份了。

2、swagger对application/json请求的类型的确实很友好,但是对于表单类型的application/x-www-form-urlencoded就很不友好了,你使用了设置了隐藏某个字段,他都会显示出来,并且不管层级都是解析成一个层级,显示就是xxx.xx,字段多了看到都是烦恼呀。

3、swagger还不支持离线查看等。。。。。

很多公众号现在都看到在推广knife4j(前身swagger-bootstrap-ui),其实看了他们的文章我也很认同他们的做法,虽然现在knife4j做得不是很全面,但是在ui、调试、离线文档都做了优化。本文主要做了一个小demo(代码就主要放在码云:

https://gitee.com/yh128/SpringDemoProject

上面了,这里就讲一下重要的配置),让读者理性去选择使用的工具,说到底适合自己的才是最好的嘛。

 

看了代码以后可以发现,我们配置里面为什么还有swagger的依赖引入呢?

<dependency>            <groupId>com.github.xiaoymin</groupId>            <artifactId>knife4j-spring-boot-starter</artifactId>            <version>2.0.2</version>        </dependency>        <!--  swagger 依赖包      -->        <dependency>            <groupId>io.springfox</groupId>            <artifactId>springfox-swagger-ui</artifactId>            <version>2.9.2</version>        </dependency>        <dependency>            <groupId>io.springfox</groupId>            <artifactId>springfox-swagger2</artifactId>            <version>2.9.2</version>            <exclusions>                <exclusion>                    <artifactId>swagger-annotations</artifactId>                    <groupId>io.swagger</groupId>                </exclusion>                <exclusion>                    <artifactId>swagger-models</artifactId>                    <groupId>io.swagger</groupId>                </exclusion>            </exclusions>        </dependency>        <dependency>            <groupId>io.swagger</groupId>            <artifactId>swagger-annotations</artifactId>            <version>1.6.0</version>        </dependency>        <dependency>            <groupId>io.swagger</groupId>            <artifactId>swagger-models</artifactId>            <version>1.6.0</version>        </dependency>

引入了swagger主要的话引入的是ui,这样就可以使用swagger原有的功能,

为什么还要单独的引入了swagger-annotations 和swagger-models呢?

其实有时候注解上的示例和类型不对的时候会报错,加入这两个依赖包就不会了。

运行以后分别是两者的界面:

 

 

 

 

knife4j这个界面就很养眼,下面就讲解一下knife4j的优点:

1、可以自己配置请求头等信息

2、离线文档的支持(目前支持了md和html)

3、请求参数层次分明

4、请求实体可以快速找到

5、请求类型方式可以选择

6、请求返回数据可以选择说明同时显示

其他还有很多功能都还不错,它还在完善中优化中,这个是不错的工具,如果适合你就快去试试嘛,如果不想侵入形式的那可以考虑其他的在线文档showdoc,yapi等,感觉都还不错。

说白了这只是工具,使用工具主要的目的就是提高效率,提高质量,所以取舍就看自己了。

 

                                        文章同时会更新到公众号,觉得对你有帮助或者有用的可以关注一下哦 

uploading.4e448015.gif正在上传…重新上传取消

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章