常用的三大接口测试工具postman,swagger,knife4j

常用的三大接口测试工具postman,swagger,knife4j

简介

老文新发,这篇文章不知道什么时候进了回收站,掏出来重新发一下吧

一直刷CSDN,老早就想发文章了,一直懒,今天有空又不知道该干嘛,索性随手分享一下吧,跟大家聊一聊目前市面上最常用的三个接口测试工具,postman,swagger和knife4j

postman

简介

Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。postman被500万开发者和超100,000家公司用于每月访问1.3亿个API。java开发通常是作为后台开发语言,通常的项目中的接口开发需要一款测试工具来调试接口,这样无需前端页面也不耽误后台代码的开发进度,postman作为一个接口测试工具,是一个非常不错的选择。

官方网址:https://www.postman.com/

安装

安装没啥好说的,去官网下载了之后直接双击安装包,过程全自动
在这里插入图片描述

使用方法

在这里插入图片描述
在这里插入图片描述

swagger

简介

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(官网:https://swagger.io/)。 它的主要作用是:

  1. 使得前后端分离开发更加方便,有利于团队协作

  2. 接口的文档在线自动生成,降低后端开发人员编写接口文档的负担

  3. 功能测试

    Spring已经将Swagger纳入,建立了Spring-swagger项目,现在叫Springfox。通过在项目中引入Springfox ,即可非常简单快捷的使用Swagger。

使用方法

SpringBoot集成Swagger
首先在模块中引入依赖

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
</dependency>

然后,我们需要写一个swagger的配置类,相关代码如下

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

   @Bean
   public Docket buildDocket() {
      return new Docket(DocumentationType.SWAGGER_2)
              .apiInfo(buildApiInfo())
              .select()
              .apis(RequestHandlerSelectors.basePackage("包扫描路径"))
              .paths(PathSelectors.any())
              .build();
   }

   private ApiInfo buildApiInfo() {
      Contact contact = new Contact("作者名称","","");
      return new ApiInfoBuilder()
              .title("****API文档")
              .description("***服务api")
              .contact(contact)
              .version("版本号").build();
   }
}

接下来我们需要在项目的api接口上加上@api注解

@Api(value = "API名称", tags = "这货是书签", description = "API描述信息")

在方法上加上@ApiOperation注解

@ApiOperation("功能名称")

在接受参数的对象上加上@ApiModelProperty

@ApiModelProperty(value = "参数名称" , required = true)
//required = true代表当前参数为必传参数

测试地址

http://host:port/swagger-ui.html

写了一个小案例给大家演示一下
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

还有一些其他注解在这里就不一一阐述了,我将一些常用注解放在下面供大家参考使用

@Api:修饰整个类,描述Controller的作用  
@ApiOperation:描述一个类的一个方法,或者说一个接口  
@ApiParam:单个参数的描述信息  
@ApiModel:用对象来接收参数  
@ApiModelProperty:用对象接收参数时,描述对象的一个字段  
@ApiResponseHTTP响应其中1个描述  
@ApiResponsesHTTP响应整体描述  
@ApiIgnore:使用该注解忽略这个API  
@ApiError :发生错误返回的信息  
@ApiImplicitParam:一个请求参数  
@ApiImplicitParams:多个请求参数的描述信息

@ApiImplicitParam的属性
在这里插入图片描述

knife4j

简介

是说 我个人觉得 这玩意比swagger好用多了 至于怎么用 老套路 导包+配置 这货是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍!
gitee地址:https://gitee.com/xiaoym/knife4j
官方文档:https://doc.xiaominfo.com/
效果演示:http://knife4j.xiaominfo.com/doc.html

主要包括两大核心功能:文档说明 和 在线调试

文档说明:根据Swagger的规范说明,详细列出接口文档的说明,包括接口地址、类型、请求示例、请求参数、响应示例、响应参数、响应码等信息,使用swagger-bootstrap-ui能根据该文档说明,对该接口的使用情况一目了然。

在线调试:提供在线接口联调的强大功能,自动解析当前接口参数,同时包含表单验证,调用参数可返回接口响应内容、headers、Curl请求命令实例、响应时间、响应状态码等信息,帮助开发者在线调试,而不必通过其他测试工具测试接口是否正确,简介、强大。

个性化配置:通过个性化ui配置项,可自定义UI的相关显示信息

离线文档:根据标准规范,生成的在线markdown离线文档,开发者可以进行拷贝生成markdown接口文档,通过其他第三方markdown转换工具转换成html或pdf,这样也可以放弃swagger2markdown组件

接口排序:自1.8.5后,ui支持了接口排序功能,例如一个注册功能主要包含了多个步骤,可以根据swagger-bootstrap-ui提供的接口排序规则实现接口的排序,step化接口操作,方便其他开发者进行接口对接

使用方法

老样子 先导依赖

<dependency>
     <groupId>com.github.xiaoymin</groupId>
     <artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>

写配置类

这货的配置类,不能说和swagger很像,简直一毛一样,只有两根毛比较特别,比swagger的配置类多了两个注解

@Configuration
@EnableSwagger2
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
public class SwaggerConfiguration {

   @Bean
   public Docket buildDocket() {
      return new Docket(DocumentationType.SWAGGER_2)
              .apiInfo(buildApiInfo())
              .select()
              .apis(RequestHandlerSelectors.basePackage("包扫描路径"))
              .paths(PathSelectors.any())
              .build();
   }

   private ApiInfo buildApiInfo() {
      Contact contact = new Contact("作者名称","","");
      return new ApiInfoBuilder()
              .title("****API文档")
              .description("***服务api")
              .contact(contact)
              .version("版本号").build();
   }
}

@EnableSwagger2和@EnableKnife4j这两个注解放到一起说
在这里插入图片描述
如果配置类写在公共模块的话,我们需要在相应的模块中开启配置
新建一个KnifeConfig类,内容如下

@Configuration
@ComponentScan("配置类路径")
public class KnifeConfig {
}

对,你没看错,就这么点东西,接下来就是测试地址了

http://host:port/doc.html

我们可以看到 主页是这样一个界面,是不是看起来就比swagger要牛牪犇
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210513162718939.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RvbnlTaHVIZW5n,size_16,color_FFFFFF,t_70

好啦,分享到此结束,我们下期再见

### 功能特点及适用场景 #### Postman的特点与应用场景 Postman是一款强大的API开发协作平台,适用于整个API开发生命周期中的设计、构建、测试以及监控阶段。它允许用户创建复杂的HTTP请求来模拟客户端行为,并能处理各种类型的认证机制。对于团队合作而言,Postman提供了共享环境变量的能力,使得不同成员可以在同一套配置下工作。此外,Postman还集成了自动化测试框架,支持编写脚本来验证API响应是否符合预期[^1]。 #### Knife4J的特点与应用场景 Knife4J作为Swagger-UI在中国区的一个增强版本,专注于提升用户体验和易用性。通过简单的注解方式即可自动生成RESTful API文档,极大地简化了接口定义过程。当集成到Spring Boot项目时,只需引入相应的Maven或Gradle依赖项就能轻松启用此功能。更重要的是,Knife4J不仅限于在线浏览模式,在离线环境中也有对应的桌面应用程序可供选择。另外,Knife4J内置了丰富的样式主题选项,可以根据个人喜好调整界面风格[^2]。 #### 主要区别对比 | 特性 | Postman | Knife4J | | --- | --- | --- | | **主要用途** | 测试API, 设计API, 文档化(次要), 自动化测试 | 自动生成API文档, 接口调试 | | **部署方式** | 客户端应用 (Windows/macOS/Linux) 和Web版 | Web页面形式展示; 支持嵌入现有Java工程内运行;有独立桌面版 | | **编程语言支持度** | 多种语言均可使用 | Java生态系统下的微服务架构尤为适合 | | **社区活跃程度&资源获取难易度** | 社区非常庞大且活跃,官方文档详尽全面 | 中文社区较为集中,英文资料相对较少 | 综上所述,如果侧重于API的设计、测试尤其是跨平台的复杂交互操作,则更推荐选用Postman;而如果是基于Java技术栈特别是Spring Cloud体系结构的应用程序,那么采用Knife4J来自动生成美观实用的API文档会更加高效便捷[^3]。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值