JSON Mock 工具:模拟JSON API 接口(一)-CSDN博客


上一篇学习到,JSON Mock 工具,是用于模拟返回 JSON 数据的 API 接口,解决后端接口未就绪时前端无法开发测试的问题,实现 “无后端依赖” 的前端独立开发,提升协作效率。以下基于上篇的内容进行链接与拓展:

一、基础配置:定义接口 “身份”

  1. 选请求方法
    点 GET 下拉框(同时还支持 POST/PUT 等 ),选择模拟 HTTP 的方法(比如模拟获取数据用 GET,模拟提交用 POST )。

  2. 填接口名称
    Name 填接口标识(如 goods ),方便识别,一般和功能关联。

  3. 设响应状态码
    Http Code 填 200(成功 )、400(参数错 )等,模拟真实接口的响应状态,前端能据此做不同逻辑(比如 401 跳转登录 )。

二、核心步骤:构造 JSON 响应数据

  1. 找到数据编辑区
    界面里的 Root Node(或类似 “数据根节点” 区域 ),即定义 JSON 结构的地方。

  2. 添加字段 / 结构

    • 点 +/Add Filed 按钮,可新增字段,选字段类型(string/number/object/array 等 )。
    • 比如模拟商品信息:
      • 建一个 object 类型节点(命名 goods ),展开后加 string 类型 brand,值填 "索尼";加 number 类型 foundedYear,值填 1946 等 。
      • 最终 JSON 结构:
        {"brand" : "索尼","foundYear" : 1946,"productTypes1":{...},"productTypes2":{...}
        }
        
  3. 灵活用 Mock 语法:JSON Mock 工具能生成随机数据(类似 Mock.js 语法 )

    例如:

    •  price,填 @integer(60,100) 生成 60 - 100 的随机数



       

    • 给 productTypes1 新增 description 字段,值填 @sentence,生成随机的单词句子
    • 填 @image('200x100') 生成随机图片地址
      这样模拟的数据更贴近真实场景(比如列表数据、不同用户信息 )。

三、保存 & 调用:让模拟接口生效

  1. 保存配置
    点 Save,工具会把你配置的 “请求方法 + 名称 + 响应数据” 存为一个模拟接口。

  2. 获取模拟接口地址
    JSON Mock工具会在顶部生成一个访问 URL(如 http://xx.xxx/mock/xxx ),复制下来。

  3. 前端 / 工具调用

    • 前端代码里,把这个 URL 当真实接口请求(用 fetch/axios 等 ),就能拿到 mock 的 JSON 数据。
    • 也能用 Postman 等工具,发送对应 HTTP 方法的请求到这个 URL,测试响应是否符合预期。

四、前端调用接口

1. 原生 JavaScript + HTML 方式

(1)使用 Kooboo在线平台,创建页面结构与逻辑
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JSON Mock 接口验证</title>
</head><body><button id="fetchBtn">调用 POST goods 接口</button><pre id="responseData"></pre><script>const fetchBtn = document.getElementById('fetchBtn');const responseData = document.getElementById('responseData');fetchBtn.addEventListener('click', () => {// 构造请求参数(根据接口需求,可传空对象或具体参数 )const requestData = {}; // Mock接口详细地址fetch('https://xxx.com/mock/xxx', { method: 'POST',headers: {'Content-Type': 'application/json' },body: JSON.stringify(requestData) }).then(response => {if (!response.ok) {throw new Error(`HTTP 错误!状态码:${response.status}`);}return response.json(); }).then(data => {responseData.textContent = JSON.stringify(data, null, 2); }).catch(error => {responseData.textContent = `请求失败:${error.message}`;});});</script>
</body></html>
(2)代码说明
  • 请求构造通过 fetch 发起 POST 请求,设置 Content-Type 为 application/json 声明数据格式,body 中 requestData 为请求参数,无特殊需求时传空对象即可。
  • 响应处理:先校验响应状态,再解析 JSON 数据并格式化展示,便于查看接口返回结构;同时捕获请求过程中的错误并展示。
2. 关键技巧:动态数据与异常模拟(提升模拟真实度)
  • 动态数据生成
    开启字段旁 “mock” 按钮,自动生成随机值(如 price生成 60-100 的随机数)。
  • 异常场景模拟
    修改 HTTP 状态码为 404/500,或故意填错字段类型,测试前端错误处理逻辑。

三、总结

JSON Mock 工具通过 “可视化配置 + 零代码” 模式,实现了:

  1. 前端脱离后端独立开发,提前验证页面逻辑;
  2. 动态数据与异常场景模拟,提升测试覆盖度;
  3. 无缝衔接真实接口,减少联调阶段的适配成本。
  4. 实际应用中,结合 Postman 等工具可进一步提升接口验证效率,是前后端分离开发中的关键辅助工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/84722.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/84722.shtml
英文地址,请注明出处:http://en.pswp.cn/web/84722.shtml

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

相关文章

质量小议55 - 搜索引擎与AI

先有搜索引擎(谷歌、百度)&#xff0c;后有AI(chatGPT&#xff0c;deepSeek&#xff0c;文心一主&#xff0c;CSDN助手) 慢慢的百度用的少了&#xff0c;更多的是直接向AI工具提问 虽然搜索引擎也有了AI版的结果&#xff0c;而且是置顶的&#xff0c;但更多的时间在用A…

Life:Internship in OnSea Day 0

Prolog This will be a new serial Blog to record my internship life in OnSea(I like this straightly translation of hell divers). As usual&#xff0c;这些 Blogs 主要还是给 自分自身 看的&#xff0c;以便日后考古自己的 career。 既然已经这个系列归类到了 Life 类…

ChangeNotifierProvider 本质上也是 Widget

场景 void main() {runApp(MyApp()); }class MyApp extends StatelessWidget {const MyApp({super.key});overrideWidget build(BuildContext context) {return ChangeNotifierProvider(create: (context) > MyAppState(),child: MaterialApp(title: Namer App,theme: Them…

【软考高级系统架构论文】论负载均衡技术在Web系统中的应用

论文真题 负载均衡技术是提升Web系统性能的重要方法。利用负载均衡技术&#xff0c;可将负载(工作任务)进行平衡、分摊到多个操作单元上执行&#xff0c;从而协同完成工作任务&#xff0c;达到提升Web系统性能的目的。 请围绕“负载均衡技术在Web系统中的应用”论题&#xff…

pyqt5工具-串口调试工具

目录 功能界面代码功能 串口设置:支持选择串口、波特率、数据位、停止位和校验位 串口操作:扫描串口、打开 / 关闭串口连接 数据收发: 支持文本和 Hex 模式显示与发送 可设置自动添加换行符 接收区自动滚动 支持中文显示 辅助功能:清空接收区、状态栏显示连接状态 多串口管…

Mybatis-Plus支持多种数据库

使用Mybatis-Plus进行数据库的访问&#xff0c;但是由于不同的数据库有不同的方言&#xff0c;所以需要进行适配。 有2种实现方式&#xff1a; databaseId方式Mapper Location方式 指定databaseId方式 通过databaseId指定所使用的数据库&#xff0c;选择同步的SQL。 Mappe…

【系统分析师】2018年真题:综合知识-答案及详解

【第1题】 面向对象分析中&#xff0c;对象是类的实例。对象的构成成分包含了&#xff08;1&#xff09;&#xff0c;属性和方法&#xff08;或操作&#xff09;。 (1)A.标识 B.消息 C.规则 D.结构 【解析】本题考查的是面向对象的基本概念 对象的三要素为&#xff1a;属性…

从Git历史中删除大文件的完整解决方案

从Git历史中删除大文件的完整解决方案 当你意外提交了一个大文件导致无法推送到远程仓库时&#xff0c;可以按照以下步骤彻底从Git历史中删除这个大文件。 情况分析 首先确认你的问题属于以下哪种情况&#xff1a; 大文件在最近一次提交中&#xff1a;相对容易处理大文件在…

[xiaozhi-esp32] 应用层(9种state) | 音频编解码层 | 双循环架构

第三章&#xff1a;应用层 在第一章&#xff1a;开发板抽象层中&#xff0c;我们实现了硬件交互标准化&#xff1b;在第二章&#xff1a;通信协议层中&#xff0c;我们构建了云端通信桥梁。 现在需要将这些能力有机整合——这便是应用层的使命 应用层的本质 应用层是设备的…

Java 锁升级的过程详解

Java 锁升级的过程详解 Java 虚拟机(JVM)为了提高多线程并发的效率,对内置锁(synchronized 关键字)的实现进行了一系列优化。这些优化体现在锁的升级过程中,即当竞争程度从低到高变化时,锁的状态会从偏向锁逐渐升级为轻量级锁,最终升级为重量级锁。这个过程是不可逆的…

使用vitis tcl脚本构建vitis app工程

一&#xff1a;最近重新学习了zynq系列开发&#xff0c;想着使用tcl创建工程&#xff0c;因此分享一下脚本例子 #!/bin/bashsource /tools/Xilinx/Vitis/2022.2/settings64.sh cd ../../ . ./script/project.sh cd app/script #tcl脚本只能在虚拟机桌面执行 xsct build_vitis…

电脑商城--购物车

加入购物车 1 购物车-创建数据表 1.使用use命令先选中store数据库。 USE store; 2.在store数据库中创建t_cart用户数据表。 CREATE TABLE t_cart (cid INT AUTO_INCREMENT COMMENT 购物车数据id,uid INT NOT NULL COMMENT 用户id,pid INT NOT NULL COMMENT 商品id,price BIG…

2024-2025学年度下期《网页设计》期末模拟测试

一、 单选题 1. HTML文档的根标签是( ) A. <html> B. <head> C. <body> D. <!DOCTYPE> 2. 用于定义段落内容的标签是&#xff1a;( ) A. <div> B. <p> C. <span> D. <br> 3. 网以下哪个属性用于定义CSS内联样式…

搭建加解密网站遇到的问

本机向云服务器传输文件 用winscp 服务器在安装 SSH 服务时自动生成密钥对&#xff08;公钥私钥&#xff09; 为什么要有指纹验证&#xff1f; 防止中间人攻击&#xff08;Man-in-the-Middle&#xff09; 指纹验证打破这个攻击链&#xff1a; 小问题 安装python时 ./confi…

CSS 制作学成在线网页

1 项目结构 1.1 总结 2 网页制作思路 3 header 区域 - 布局 3.1 通栏 3.2 logo 3.3 导航 3.4 搜索区域 3.5 用户区域 4 banner 区域 4.1 左侧侧导航 4.2 右侧课程表 5 精品推荐 6 推荐课程区域 参考链接&#xff1a; 82-准备工作-项目目录与版心_哔哩哔哩_bilibili

图灵完备之路(数电学习三分钟)----门的多路化

上一章中我们学习了如何用与非门实现其他逻辑门&#xff0c;但上节中的输入信号始终为2&#xff0c;但在现实中&#xff0c;输入的信号数量是不确定的&#xff0c;所以我们需要设计多输入的门&#xff1a; 1.三路与非门&#xff08;卡诺图法&#xff09; 我们还是从与非门开始…

【前端】二进制文件流下载(get、post)再谈一次

最近二进制文件流下载可谓是又出幺蛾子&#xff0c;翻阅以前的文章也找不到解决方案&#xff0c;感觉还是没用完全理解&#xff0c;这次再整理一遍。 先说一个通用场景&#xff0c;就是无论get还是post在接口请求的时候设定好 headers: { Content-Type: application/json;cha…

uv功能介绍和完整使用示例总结

以下是关于 UV 工具的完整使用示例总结,结合其核心功能与典型场景,帮助用户快速上手并高效管理 Python 项目: 一、安装与配置 快速安装 macOS/Linux:curl -LsSf https://astral.sh/uv/install.sh | shWindows:powershell -ExecutionPolicy ByPass -c "irm https://as…

MySQL启动报错“mysqld_safe Directory ‘/var/lib/mysql‘ don‘t exists“终极解决方案!从入门到高阶全攻略

在MySQL的使用过程中&#xff0c;启动报错mysqld_safe Directory /var/lib/mysql dont exists是开发者经常遇到的问题。这个错误看似简单&#xff0c;实则可能涉及目录权限、系统配置、文件系统等多个方面。本文将结合官方文档与实际经验&#xff0c;从基础到高级&#xff0c;为…

python 常见数学公式函数使用详解

Python 数学公式与函数大全 Python 提供了丰富的数学计算支持&#xff0c;包括内置函数、标准库&#xff08;math、cmath、numpy&#xff09;和第三方库&#xff08;sympy、scipy&#xff09;。以下是常用数学公式和函数的分类整理&#xff1a; 1. 基本数学运算 1.1 算术运算…