Apinto 网关进阶教程,使用 API Mock 生成模拟数据

news/2024/7/10 22:18:04 标签: API, 开源, 网关, mock, 生态

什么是 API Mock ?

API Mock 是一种技术,它允许程序员在不依赖后端数据的情况下,模拟 web服务器端 API 的响应。通常使用 API Mock 来测试前端应用程序,而无需等待后端程序构建完成。API Mock 可以模拟任何 HTTP 请求方法,并进行响应测试。

当我们需要调试后端接口时,有时候接口文档已经发布,但是后端接口还没有完全开发完成。这种情况下,我们可以使用 API Mock 生成动态模拟数据,以便进行前端页面布局、兼容性调试等工作。

使用 Apinto Mock 插件生成动态模拟数据

Apinto 开源网关v0.12版本新增了http_mocking插件。当执行该插件时,它将随机返回指定格式的模拟数据,并且请求不会转发到上游。

接下来我们将给大家演示如何使用 Apinto 生成 Mock 模拟数据。

前期准备

1. 准备模拟接口信息

用户信息接口为例,下图是接口的返回内容,在此处,我们定义了用户数组(users),每个用户包含了 emailnameip 字段信息。

图片

2. 编写 Mock 规则

在这里,我们将构造 users 数组,随机生成对象中的 emailnameip

{
    'users|1-10':[
        {
            "email":"@email",
            "name":"@name",
            "ip":"@ip"
        }
    ]
}

Mock 规则可参考 MockJS 官网。

3. 生成 Json Scheme 语法

1)打开 MockJS官网,并打开调试控制台。

图片

2)在控制台中输入下列代码

JSON.stringify(Mock.toJSONSchema(
{
    'users|1-10':[
        {
            "email":"@email",
            "name":"@name",
            "ip":"@ip"
        }
    ]
}
))

执行完成后,即可生成 JSON Scheme 语法数据,如下图:

图片

上图红框部分使用第一步编写的 Mock 规则。执行完成后生成如下数据:

图片

使用 Apinto 生成 mock 数据

为了让使用者快速上手,我们此处演示的教程使用 Apinto 可视化项目 Apinto-Dashboard 进行演示。项目仓库地址请按需点击:

· Apinto 项目地址:👉点击跳转

· Apinto-Dashboard项目地址:👉点击跳转

1. 新增节点插件

在左侧导航栏中,点击 基础设施 > 节点插件,进入节点插件列表。点击 添加插件

图片

点击拓展 ID 单选框,在下拉选项后选中 http-mocking 插件:

图片

填写插件名称信息,点击保存:

图片

注意:该步骤非必需,仅在节点插件列表中需要使用的插件时才需要执行。

2. 发布节点插件

在左侧导航栏中,点击 基础设施 > 集群,进入集群列表。选中需要发布节点插件的集群,点击进入:

图片

点击 节点插件 选项卡,选中插件后方的扳手按钮:

图片

在弹出框中,将状态改成 启用 ,点击 提交 

图片

在节点插件列表,点击 发布

图片

在弹出框中点击 提交

图片

注意:该步骤非必需,仅在节点插件有改动时(新增、删除、修改节点插件顺序等),才需要重新在集群中发布上线。

3. 新增API操作模版,绑定 http-mocking 插件

在左侧导航栏中,点击 公共配置 > API操作模版,进入操作模版列表后,点击 新建模版

图片

点击添加插件

图片

在弹出框中选中上一步新增的节点插件,填写插件配置

图片

参数配置说明

图片

此处,我们将上文生成的 Mock 规则 填入 response_schema 字段中,得到完整插件配置,如下:

图片

填写完成后点击保存。

点击保存成功的插件模版,进入到 上线管理 页面,点击 上线 按钮

图片

4. 新增 API,并绑定 API 操作模版

在左侧导航栏中,点击 API ,进入 API 列表后,点击 新建API,选中 HTTP 。

图片

填写接口的基本信息,绑定上游,绑定插件模版。

图片

此处由于绑定了包含 http-mocking 插件API 插件模版,因此请求将会被网关拦截,返回网关生成的 Mock 数据信息,不会将请求转发给上游服务。

保存后,点击 API 后方的上线管理按钮,将 API 上线到对应的集群即可。

图片

5. curl 调用接口

使用 curl 命令调用接口 /user/info/http/mock

curl http://172.18.65.72:8099/user/info/http/mock

返回数据结果:

图片

写在最后

目前Apinto 及其周边项目已经开源,我们希望通过Apinto强大的插件拓展能力,用户可像乐高积木一样根据需要自行拓展Apinto的插件,以满足不同的业务市场需求。

Apinto 目前属于萌芽阶段,我们希望集合广大开源爱好者的力量,与大家一起讨论方案,接受大家的批评指正,一起将产品打磨完善,做下一个端与端间的Traffic Middleware。这是一个开放和积极的项目,我们诚挚地邀请您一起参与到我们的项目开源工作中。每一个贡献都是有意义的,包括但不限于:

·查找 bugs,取得性能上的提升

·帮助完善文档,提供用户操作体验

·提交你们的 issue,让我们知道您的奇思妙想

·参与自定义插件的开发,丰富 Apinto 的能力

...

欢迎各位开源爱好者参与到 Apinto 项目中,和我们一起为开源事业贡献自己的力量!


http://www.niftyadmin.cn/n/5167734.html

相关文章

Vue3+element-plus el-from中el-select选中后无法回显

Vue3element-plus el-from中el-select选中后无法回显 <el-form :inline"true"label-position"top" :model"packageForm" :rules"packageRules"ref"packageForm"label-width"120px" class"customForm&quo…

openinstall携手途虎养车,赋能汽车服务数字化

近日&#xff0c;openinstall与中国领先的一站式汽车服务平台途虎养车再次续约&#xff0c;双方将开启第三年合作。过去两年&#xff0c;途虎在建设线上线下一体化数字平台的过程中&#xff0c;深度结合openinstall传参归因与渠道统计技术&#xff0c;打造出了一套高效的渠道来…

javaSE学习笔记(三)抽象类,接口,package,import,修饰符,内部类

目录 三、面向对象 10.抽象类 抽象类特点 抽象类的成员特点 abstract不能和哪些关键字共存 11.接口 接口的概述 接口的特点 接口中的成员特点 类与类&#xff0c;类与接口&#xff0c;接口与接口的关系 抽象类和接口的区别 12.package关键字 包的定义 定义包的注…

ubuntu使用Parted GPT 创建大于2TB的的分区

问题 加购了一个4TB的ssd用于装载数据&#xff0c;使用fdisk挂载时候遇到一下warning&#xff1a; $ sudo fdisk /dev/sdbWelcome to fdisk (util-linux 2.34). Changes will remain in memory only, until you decide to write them. Be careful before using the write com…

OpenCV入门8:区域分割和区域生长

区域分割是图像处理中一个重要的任务&#xff0c;它旨在将图像划分成不同的连通区域&#xff0c;使得每个区域具有一致的特征或属性。在OpenCV中&#xff0c;有一些常见的区域分割算法和函数可用于实现该任务。以下是一些相关的知识点&#xff1a; 基于阈值的方法&#xff1a; …

python默认的输入类型是字符串,怎样转换为其他的类型

在Python中&#xff0c;默认的输入类型是字符串&#xff08;str类型&#xff09;。无论你输入的是数字、字符还是其他类型的内容&#xff0c;input函数都会将其作为字符串处理并返回。 如果需要将字符串转换为其他类型&#xff08;如整数、浮点数等&#xff09;&#xff0c;可…

【操作系统】测试二

文章目录 单选题判断题填空题 单选题 在操作系统中&#xff0c;进行资源分配、调度和管理的最小独立单位是&#xff08;&#xff09;。 【 正确答案: C】 A. 作业 B. 程序 C. 进程 D. 用户 进程在发出I/O请求后&#xff0c;可能导致下列哪种进程状态演变&#xff1f; 【 正确答…

无线充,大功率小家电,智能家居,无人机快速充电等产品供电 LDR6328S芯片TYUPE-C PD诱骗电压 USB-C解决PD电源取电问题

LDR6328S 是乐得瑞科技有限公司开发的一款兼容 USB PD、QC 和 AFC 协议的 Sink 控制器。 LDR6328S 从支持 USB PD、QC 和 AFC 协议的适配器取电&#xff0c;然后供电给设备。比如可以配置适配器输 出需要的功率&#xff0c;给无线充电器设备供电。LDR6328S 也兼容传统 USB 电源…