目标
构建完全由 routes.json 驱动的 mock 服务器:路径模式提取参数、逐路由延迟与状态注入、按请求体匹配选择候选响应,并提供录制真实上游响应为可回放 fixture 的模式。
要点
匹配器把模式编译为字面与参数段,先查长度再解码参数,URL 编码的斜杠无法改写路径;失败注入是一等能力——延迟与状态码让前端在上线前就体验 500 与 8 秒超时;录制与回放共用同一 JSON 模式,往返测试要求字节一致。
提示
热重载先编译整表再引用交换,绝不在活跃表里逐条 push;重叠路由按首个匹配且顺序显式写在 JSON 里。
验证
延迟经注入函数传入测试、真实睡眠不进套件;录回往返测试是防漂移的执行机制。 项目目录骨架:
api-mock/
├── src/
│ ├── server.js
│ ├── matcher.js
│ ├── responder.js
│ └── recorder.js
├── routes.json
├── fixtures/
│ └── users-list.json
├── test/
│ ├── matcher.test.js
│ └── server.test.js
└── package.json
实施阶段:Route table and matcher → Responder with latency and matchers → Record mode → Hot reload and CORS。