Apinto 网关进阶教程,使用 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.rhkb.cn/news/186442.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Wireshark分析tcp交互过程

三次握手 客户端发起请求 Tcp段长度为575字节,seq1,ack1,next_seq576 服务器响应: Tcp段长度为175字节,seq1,ack576,next_seq176 客户端响应: Tcp段长度523字节,seq576&…

LVS NAT 模式

1.3.2. LVS DR 模式 模式(局域网改写 (局域网改写 mac 地址) ①.客户端将请求发往前端的负载均衡器,请求报文源地址是 CIP,目标地址为 VIP。 ②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址&am…

Java设计模式-创建者模式-工厂模式

工厂模式 工厂模式简单工厂模式工厂方法模式抽象工厂模式 工厂模式 要求:由一个特定的工厂提供所需的对象,由工厂来完成对象的创建 工厂模式一般分为三种:简单工厂模式,工厂方法模式,抽象工厂模式 其中简单工厂模式不…

10-26 maven配置

打开idea 打开setting 基于Idea创建idea项目 加载jar包:(一般需要自己去手动加入,本地仓库是没有的)

Zookeeper选举Leader源码剖析(上)

为什么要看源码: 1、 提升技术功底: 学习源码里的优秀设计思想,比如一些疑难问题的解决思路,还有一些优秀的设计模式,整体提升自己的技术功底 2、 深度掌握技术框架: 源码看多了,对于一个新技…

AT32F403A VGA(一)

一、目的: 要用单片机实现VGA功能。 二、分析: VGA需要两根时钟信号线,分别为Hsync和Vsync。 在800*600的显示模式下,Hsync周期为26.4us,Vsync周期为16.579ms。 Hsync同步脉冲时间为3.2us,Vsync同步脉…

【23真题】太难!千万别考!不值!

今天分享的是23年哈尔滨工程大学810的信号与系统试题及解析。 为什么说不值呢?因为哈工程810据之前的分析来看不保护一志愿,就23年810的专业课来看,又在超纲的边缘疯狂试探!(如果它默认考DSP,当我没说&…

Xmake v2.8.5 发布,支持链接排序和单元测试

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好&#x…

为什么OpenAPI是未来企业数字化转型的决定性因素

随着数字经济不断发展升级,数据互通、万物互联正在逐步成为IT产业发展的主旋律,企业数字化转型也变得愈发紧迫。越来越多的企业都在数字化转型过程中寻求降本增效、加大创新力度、开展生态合作,以此来提高企业和产品的持续竞争力。而OpenAPI则…

golang正则获取中括号中的内容

reg : regexp.MustCompile("【(.*?)】") //userInfo姓名:【AAA姓名】证件类型:【BBB身份证】证件号码:【122456789458】tempData reg.FindAllStringSubmatch(userInfo, -1)for k, v : range tempData {if k 0 {tempReleaseUser.Name v[1]//AAA姓名} else if k 1…

数据结构与算法C语言版学习笔记(5)-串,匹配算法、KMP算法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、串的定义二、串的存储结构1.顺序结构2.链式结构 三、串的朴素的模式匹配算法(暴力匹配算法)1.背景2.假设我们要从下面的主串 S"…

Spring boot 整合grpc 运用

文章目录 GRPC基础概念:Protocol Buffers:proto 基础语法:调用类型: Spring boot 整合 grpc项目结构:整合代码:父 pomproto 模块服务端:客户端:实际调用: 原生集成 GRPC基…

leetcode链表

这几天手的骨裂稍微好一点了,但是还是很疼,最近学校的课是真多,我都没时间做自己的事,但是好在今天下午是没有课的,我也终于可以做自己的事情了。 今天分享几道题目 移除链表元素 这道题我们将以两种方法开解决&…

Project Office X for Mac项目管理工具

Project Office X是一款全能的项目管理软件,可帮助企业或个人有效地规划、协调和执行项目。它具有直观的用户界面和强大的功能,适用于各种规模的项目。 这个软件提供了多种实用工具,包括项目计划、资源管理、任务分配、进度跟踪、风险管理和团…

在Node.js中,什么是Promise?如何使用Promise处理异步操作?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

两台Linux服务器之间传送文件

两台Linux服务器之间传送文件 将U盘上的数据传送到服务器上 本地U盘 远程服务器地址: 192.168.30.125 传送到data文件夹的下面 scp -r coco2017 s192.168.30.125:/data传送 两台Linux服务器之间传送文件的4种方法

2024上海智博会,上海国际智慧城市,物联网,大数据展会(世亚智博会)

中国国际智慧城市,物联网,大数据博览会(简称:世亚智博会)自2010年创办以来,至今已成功举办十多届。世亚智博会是中国较高、规模较大、影响力较广的展会;是被国际业界公认的不可错过的名展之一。随着世亚智博会的国际地位和影响不断…

Linux 入门

Linux 入门 1:linux 用户 root 用户 :也叫超级用户,UID0,其权限最高。系统用户:也叫虚拟用户,UID 1-999普通用户: UID1000-60000, 可以登录系统,操作自己目录下的文件. 1.1:用户操作命令 切换用户: su …

PHP+MySQL人才招聘小程序系统源码 带完整前端+后端搭建教程

在当今竞争激烈的人才市场中,招聘平台的需求日益增长。传统的招聘平台往往需要投入大量的人力物力进行维护和管理,这对于许多中小企业来说是一个沉重的负担。因此,开发一个简单易用、高效便捷的招聘平台显得尤为重要。 PHP是一种流行的服务器…

配置Linux为无线路由器

配置Linux无线路由器 将Linux配置为无线路由器。使用hostapd,可以配置无线网卡为AP模式。 这里使用buildroot来生成这个工具。Wi-Fi模块使用的是 rt8188eus。 1. 内核配置 2. buildroot配置 开启 rt8188eus 驱动 3. 启动hostapd 系统启动后,会自动加…