还在使用Swagger吗,快来试试这款强大的在线API工具

2022-12-06 15:39:28 浏览数 (1)

大家好,我是可爱又机灵的开源小妹。

今天给大家分享一个非常好用的在线文档工具:Knife4j

背景

现在分工越来越明确,做项目也都是前后端分离,这样就和前端沟通越来越多,包括现在微服务架构也越来越流行,服务就会进行拆分,各个服务之间有不同的团队开发,这个时候一份简洁完善的在线API接口就很有必要了,可以提提高大家的工作效率,减少一些不必要的沟通。Knife4j就是在线API文档的佼佼者,不仅提供了美观的在线API文档,还有其他的一些特性例如:全局参数、个性化设置、资源安全等,大家跟着小妹一块来看看吧。

快速入门

加入依赖

代码语言:javascript复制
<dependency>
  <groupId>com.github.xiaoymin</groupId>
  <artifactId>knife4j-spring-boot-starter</artifactId>
  <version>2.0.9</version>
</dependency>

简单配置

代码语言:javascript复制
@Configuration
@EnableSwagger2WebMvc
public class KnifeConfiguration {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
             .groupName("V1版本")
                .select()
                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Knife Simple Demo APIs")
                .description("Knife Simple Demo")
                .version("1.0")
                .build();
    }
}

访问地址:http://localhost:8080/doc.html,其中端口是自己服务的端口信息,小妹这边配置的是8080端口

image-20211114190908046

选择调试,进行访问

image-20211114191030633

看起来是不是很简洁,很清楚呢,和前端小伙伴对接的效率都提高了不少。

对比

在使用Knife4j之前,小妹一直使用的是swagger,那为什么要从swagger出来入坑到Knife4j呢?

两个在简单时候用上配置&依赖都差不多,Knife4j是在swagger的ui基础上做了增强。在后端使用上基本是一样的,主要体现在前端效果上

swagger页面效果如下:

image-20211114195113293

image-20211114195138295

swagger展示api的方式是一条一条的,不像Knife4j那样是以左侧菜单的方式进行展示的,Knife4j更符合操作习惯 并且功能更丰富。

Knife4j实际上是基于swagger开发的一个增加的UI包,所以不是说swagger不够好,而是说Knife4j的页面展示或者操作更加方便。

如果正在使用swagger想转到Knife4j的话只需要稍微改动一下依赖 基本就可以转入看到Knife4j样式的在线api了。

高级使用

上面小妹介绍了Knife4j的简单使用,Knife4j还有一些其他强大的配置,更丰富的功能,跟着小妹一块去看看吧。

可以导出4种离线文档

markdown格式

html格式

word格式

OpenApi格式

全局参数设置

在进行接口调试的时候,有时需要带上头信息,如果一个一个接口写比较麻烦,Knife4j提供了全局参数设置,只需设置一遍,后续Debug调试页则会带上添加的参数。

分组搜索

代码语言:javascript复制
//设置分组
.groupName("V1版本")
可以选择对应的组查看对应的api,当api多的的时候 可以输入关键字进行搜索。

小妹总结

Knife4j不止上面介绍的那几种特性设置,还有其他的例如授权、功能增强、个性化设置、国际化等等,小妹就不在这里一一介绍了。

0 人点赞