Skip to content

接口管理框架Swagger

接口管理框架 Swagger

简介

Swagger 是一个接口管理工具,其开源的核心功能主要有:

功能模块 作用
Specification 规范定义
swagger-ui 交互式的在线文档
swagger-editor 交互式的 api 规范编写与文档界面生成工具
swagger-codegen 代码生成工具

而这些功能模块,即可满足一个接口管理工具所需要的所有功能

应用场景

阶段 交付
设计阶段 提供设计工具和规范
研发阶段 提供 stub 环境联调和客户端 sdk
基础测试用例
测试阶段 生成测试脚本
联调环境
交付阶段 接口文档/客户端 sdk

在接口管理体系中,为了满足在每个阶段能够产出对应的交付,一个接口管理的工具就需要具备以下的功能:

  • 接口文档规范。
  • 根据接口文档生成 stubmock 服务(联调环境)。
  • 自动生成测试脚本。
  • 能够持续的维护所有的接口文档。

而接口管理工具 Swagger 就具备以上所有的功能。

实战演练

接下来就以 Swagger 为例,来看一下每个阶段的流程,它是怎么做的。

Specification

设计阶段需要提供设计工具和规范,而 Swagger 的 Specification 就是为此而设计的。

OpenAPI 规范 (OAS) 定义了一个与语言无关的标准 HTTP API 接口,允许人类和计算机发现和理解服务的功能,而无需访问源代码、文档或通过网络流量检查。 如果定义正确,消费者可以使用最少量的实现逻辑来理解远程服务并与之交互。

官网地址: https://swagger.io/specification/

swagger-ui

Swagger UI 允许任何人(无论是您的开发团队还是最终消费者)可视化 API 的资源并与之交互,而无需任何实现逻辑。 它是根据 OpenAPI(以前称为 Swagger)规范自动生成的,并带有可视化文档,使后端实现和客户端使用变得轻松。

以上是 Swagger 官网对于 swagger-ui 的介绍,其核心的功能点主要在于接口文档的可视化。

  • 官网地址:https://swagger.io/tools/swagger-ui/
  • 测试人社区版:https://swagger.hogwarts.ceshiren.com/

swagger-editor

swagger-editor 是 swagger 最核心的功能模块,它具有以下功能:

  • 根据定义好的数据结构,生成可视化文档。 可视化文档功能
  • 动态调试功能,模拟发送请求。 swagger动态调试功能
Generate Server

点击Generate Server 可以选择不同的语言,会自动下载不同的 server 文件夹,此文件夹主要由以下几个部分组成:

类型 内容
controllers 接口层
models 业务模型
test 接口测试用例

把接口文档生成服务器文件,导出一个压缩包,接口文档生成 java、js 等服务器文件。可以将生成的文件部署在本地环境,并通过修改源码的方式,生成 stub 或者 mock 服务。辅助前端开发的同学构造模拟不同的服务数据。

Generate Client

点击Generate Client 可以选择不同的语言,会自动下载不同的 client 文件夹,此文件夹主要由以下几个部分组成:

类型 内容
docs 自动生成的接口文档
api 接口信息
models 业务模型
tests 测试用例

而 Generate Client 如此的设计是为了满足用户端,也就是接口的调用方的需求。作为一个测试工程师,可以根据业务模型和接口信息去拼接业务流程,非常简便的即可完成接口测试的整个过程。

而其多语言的设计,也可以满足不同技术栈的测试工程师的不同需求。当然这样的缺点其实也是显而易见的,就是其代码定制性比较弱,难以和已有的代码共存。Swagger 针对此需求,也有相应的解决方案。即为使用其 codegen 模块。

到这里,可能很多同学还是容易把 ClientServer 的使用混淆,所以我这边会输出一个对比的表格,让大家更好的理解它们的使用

类型 Server Client
应用场景 Mock Stub 接口服务给前端开发使用 自动给测试人员生成接口测试用例
是否有接口文档
使用方式 当做一个正常的后端服务部署 类似于接口自动化测试的脚本调用,无需部署
是否支持多语言 支持 支持

总结

  • swagger-ui
  • swagger-editor
  • Generate Client