我最近的在做的项目是一个前后端分离的项目,前后端由不同的团队分别开发,并且前端的进度经常领先后端。这就意味着,当前端在开发一个新功能时,API 可能还没有准备好。不过,我们会先和后端先商议好 API Schema,然后使用 Mock 数据进行开发。
但问题也随之而来,定义 Mock 数据并配置 mock server 真的太浪费时间了!我真的非常讨厌这种没有任何技术含量的「苦力活」。所以,只好想办法让生成 Mock 数据的过程「自动化」。那么,从哪里生成这些 Mock 数据呢?突然想到了开发时使用的 Swagger UI,它提供的 Swagger JSON 准确地定义了所有的 API Schema。因此,我们可以通过 Swagger JSON 去自动生成 Mock 数据。
本篇文章会介绍如何通过 Swagger 定义去生成 Mock 数据以及 Mock Server 的配置。主要内容包括:
Swagger 简介
通过 Swagger JSON 生成 Mock 数据
处理 Swagger JSON
生成 Mock 数据
生成 Mock Server 配置
本文所有代码都在这个仓库 swagger-faker。
Swagger 简介
在介绍 Swagger 之前,你需要先了解一下 OpenAPI 规范。因为 Swagger 定义是基于 OpenAPI 规范的。
OpenAPI 规范(OAS)为 RESTful API 定义了一个与语言无关的标准接口,允许人和计算机发现和理解服务的功能,而无需通过访问源代码、文档或开发者工具。
OpenAPI 定义大致如下:
{
"swagger": "2.0",
"info": {},
"host": "petstore.swagger.io",
"basePath": "/v2",
"tags": [],
"schemes": [],
"paths": {
"/user/logout": {
"get": {
"tags": [
"user"
],
"summary