开始之前
边看边操作在 临时 Mock API 中打开实际工作区→
重试逻辑很难靠稳定成功的接口验证。本例让同一个临时地址先失败一次,随后成功。序列按接口共享,不按浏览器或用户隔离;开始前请为本次测试创建一个全新地址。
创建两个响应项
将下面配置创建为新接口。第一次实际调用预期得到 503,之后重复最后一项 200。配置里的 attempt 是固定演示值,不是服务器实时计算的计数。
示例
{
"replies": [
{
"status": 503,
"delay_ms": 0,
"body": {
"attempt": 1,
"ok": false
}
},
{
"status": 200,
"delay_ms": 0,
"body": {
"attempt": 2,
"ok": true
}
}
]
}不要先点击测试按钮
“发送一次 GET”、curl、页面自动请求都会消耗响应项。复制地址后直接交给下面实验;若已预览过,重新创建接口恢复起点。OPTIONS 预检不消耗响应序列。
按顺序发出三次请求
替换地址,在自己的开发页面运行。请求串行 await,避免完成顺序与到达顺序混淆。预期打印 503、200、200。
示例
const endpoint = '替换为全新接口地址';
for (let i = 1; i <= 3; i++) {
const response = await fetch(endpoint, { credentials: 'omit' });
console.log(i, response.status, await response.json());
}接入有限重试逻辑
重新创建一个地址供应用测试。仅在你的业务允许重试时重试,设置次数上限和退避间隔;对真实支付或创建订单请求,还要考虑幂等性,不能因为 Mock 重试成功就直接重复生产写操作。
为什么第一下就是 200
先检查是否点过 GET、浏览器组件是否重复挂载、其他同事是否用了同一地址。所有实际调用共享序列;并发时按服务端预留响应的顺序分配,而不保证按完成时间返回。重新创建地址比猜测已用到第几项更可靠。
接口层限流与模拟状态的区别
调用过密还可能触发平台自己的 429。请用少量串行请求验证业务序列,不要把压力测试混进这个实验。地址过期或服务重启后会失效,需要新建。
临时接口的支持范围
最多 5 个响应,每个 body 为有效 JSON 且不超过 16 KiB,delay_ms 为 0–5000,status 为 200–599 且不含 304。配置上传到服务器内存,地址最长保留 30 分钟,重启会提前清除。持有地址的人可读取响应;只放测试数据。请求正文不保存,也不会改变你配置好的响应。
要点总结
- 每个独立实验使用全新地址。
- 最后一个响应会重复,不会循环到第一项。
- 前端重试必须有上限,并考虑真实业务幂等性。