ProxyPin 请求映射 本地 Mock 离线开发
请求映射 vs 请求重写
请求重写仍然会把请求发到远程服务器(只是改了内容),而请求映射根本不发请求——直接返回你预设的响应。
这有几个重要区别:
| 维度 | 请求重写 | 请求映射 |
|---|---|---|
| 是否发远程请求 | 是 | 否 |
| 网络依赖 | 需要网络 | 纯本地 |
| 性能 | 正常网络延迟 | 瞬时返回 |
| 典型用途 | 修改真实请求 | Mock 后端接口 |
映射到本地 JSON 文件
这是最常用的场景:
- 准备一个 JSON 文件(
mocks/user-profile.json):
{
"code": 200,
"data": {
"user_id": "12345",
"name": "测试用户",
"vip": true,
"balance": 9999
}
}
- 在 ProxyPin 中添加映射规则:
- 远程 URL:
https://api.myapp.com/user/profile - 本地文件:选择上面的 JSON 文件
- HTTP 方法:GET(匹配请求方法)
- 状态码:200(可选,默认 200)
- 保存启用。App 再发起
GET https://api.myapp.com/user/profile时,直接返回本地文件内容。
映射到脚本
对于需要动态生成 Mock 数据的场景(比如参数不同返回不同内容),可以映射到 JS 脚本:
// ProxyPin 请求映射脚本
function onRequest(request) {
// 根据请求参数返回不同数据
if (request.url.includes('/user/profile')) {
return {
statusCode: 200,
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
code: 200,
data: { name: '动态Mock用户' }
})
};
}
// 其他 URL 继续走远程
return null;
}
通配符映射
请求映射支持通配符路径:
远程:https://api.myapp.com/users/*/profile
本地:./mocks/user-profile.json(所有匹配返回同一个)
或者用动态脚本处理:
远程:https://api.myapp.com/users/*/profile
脚本:动态从 URL 提取 user_id,返回对应 Mock
实战场景
前后端并行开发
前端开发不依赖后端接口进度。所有 API 映射到本地 Mock 文件,后端接口好了删掉映射规则即可。
测试边界条件
把成功接口映射成错误响应,测试 App 的异常处理:
映射:https://api.myapp.com/payment/submit
返回:{"code":500,"msg":"模拟服务器错误"}
性能测试
请求映射本地瞬时返回,用它测 App 在「后端零延迟」情况下的前端渲染性能。