当前位置: 首页 > news >正文

simple-mock-proxy,自动拾取后端接口数据,生成本地mock接口与数据

simple-mock-proxy

简介
基于vite的proxy插件,可将vite代理的所有接口数据获取,存入本地mock/database,并生成对应的mock/api接口,访问地址https://www.npmjs.com/package/simple-mock-proxy?activeTab=readme

一、使用方式

1. 安装

npm i simple-mock-proxy -D

2. 配置
在vite.config.js/ts,首先按vite中的默认proxy配置项进行配置,确保能访问到后端接口。配置正确后,将proxy配置以参数形式,传入simpleMockProxy方法,各属性作用见下方代码注释。

import { simpleMockProxy } from 'simple-mock-proxy'
{server: {proxy: simpleMockProxy({proxy: {'/api1': {target: 'url1'},'/api2': {target: 'url2'}},mockWrite: true,//是否开启写入本地mock接口与数据mockPath: '/mock', //指定写入路径(注意/不能省略)ts: true //写入接口文件类型是否为ts})}
}

3. 使用
配置完成后,进入浏览器,通过前端页面访问接口,会自动生成对应的mock接口与mock数据,生成文件内容存放在配置中的mockPath文件夹下

二、生成文件说明

以代理接口:/xxxA/xxxB/xxxC,mockPath:‘/mock’,ts:true为例

1. 生成mock接口文件路径
/mock/api/xxxA/xxxB/xxxC.ts(路径中不存在的文件夹会自动创建),路径规则如下

mockPath + '/api'+ 后端接口路径 +'.ts'

2. 生成mock数据文件路径
/mock/database/xxxA/xxxB/xxxC.json(路径中不存在的文件夹会自动创建),路径规则如下

mockPath + '/database'+ 后端接口路径 +'.json'

3. 生成mock接口文件内容
生成的mock接口适用于vite-plugin-mock

  • jsonRead 读取json内容
  • simpleSend 返回响应数据
		import { jsonRead, simpleSend } from 'simple-mock-proxy'const url =' /xxxA/xxxB/xxxC'export default [{url: '/mock' + url,method: 'post',rawResponse: async (req, res) => {const jsonData = await jsonRead('/mock/database' +url + '.json')simpleSend(req, res, jsonData)}}]

三、额外提供以下辅助函数用于mock接口文件

  1. bodyParse(req) //解析请求头中的参数,使用方式见下方rawResponse,方法内部已处理了post与get请求获取参数差异
		import { jsonRead, simpleSend } from 'simple-mock-proxy'const url =' /xxxA/xxxB/xxxC'export default [{url: '/mock' + url,method: 'post',rawResponse: async (req, res) => {const body = await bodyParser(req)const jsonData = await jsonRead('/mock/database' +url + '.json')simpleSend(req, res, jsonData)}}]
  1. jsonWrite(filePath,data) //基于绝对路径创建json文件,并写入内容data
  2. jsonRead(filePath) //基于绝对路径filePath读取json文件内容
  3. getRandomId(length) //生成length长度的随机数
http://www.xdnf.cn/news/1203607.html

相关文章:

  • idea启动java应用报错
  • keepalived原理及实战部署
  • vue怎么实现导入excel表功能
  • 最新!Polkadot 更新 2025 路线图
  • C++-关于协程的一些思考
  • ERC20 和 XCM Precompile|详解背后技术逻辑
  • 【Kotlin】如何实现静态方法?(单例类、伴生对象、@JvmStatic)
  • Android中应用进程中Binder创建机制
  • VUE2 学习笔记11 脚手架
  • 从0到500账号管理:亚矩阵云手机多开组队与虚拟定位实战指南
  • 数据结构之顺序表链表栈
  • 分享一个脚本,从mysql导出数据csv到hdfs临时目录
  • CFIHL: 水培生菜的多种叶绿素 a 荧光瞬态图像数据集
  • 雷达系统设计学习:自制6GHz FMCW Radar
  • 深入解析 Spring 获取 XML 验证模式的过程
  • 可以组成网络的服务器 - 华为OD统一考试(JavaScript 题解)
  • 速度革命 Kingston FURY PCIe 5.0 NVMe装机体验
  • 第四章:分析 Redis 性能高原因和核心字符串类型命令
  • 15-C语言:第15天笔记
  • Nginx 四层(stream)反向代理 + DNS 负载均衡
  • Java面试深度剖析:从JVM到云原生的技术演进
  • JVM 内存共享区域详解
  • 解决cordova编译安卓提示Cloud not find XXXX.aar
  • windows内核研究(异常-CPU异常记录)
  • C++ 内存管理
  • 图像轮廓与凸包
  • 数据赋能(345)——数据整合——全面集成原则
  • 《 服务注册发现原理:从 Eureka 到 Nacos 的演进》
  • Vue、微信小程序、Uniapp 面试题整理最新整合版
  • 博士申请 | 荷兰阿姆斯特丹大学 招收计算机视觉(CV)方向 全奖博士生