最直接的方法是对比Mock数据与真实接口响应的结构,检查字段名、嵌套层级、数据类型及空值处理是否一致,并通过脚本提取“字段路径+类型”快照进行比对,或在请求层加拦截校验,推荐使用MSW等工具的Schema验证能力。

最直接的方法是把 Mock 数据和真实接口响应做结构对比,重点检查字段名、嵌套层级、数据类型和空值处理是否一致。
用 Postman 或浏览器抓包看真实接口返回
别只信文档,实际调用一次后端接口,把返回的 JSON 复制出来。注意几个关键点:
- 响应体里有没有外层包装(比如 data、result 或 payload 字段)
- 数组字段是否存在但为空(
[]),还是根本没返回该字段 - 时间字段是字符串(
"2024-05-20")、时间戳(1716192000000),还是对象({ seconds: 1716192000, nanos: 0 }) - 布尔值是
true/false,还是字符串"true"/"false",甚至数字1/0
写个简易结构校验脚本比对字段
在本地跑一段 JS 脚本,把 Mock 数据和真实响应都转成“字段路径 + 类型”的快照,再逐项比对。例如:
// 示例:提取字段结构(路径 + 类型)
function extractSchema(obj, path = '', schema = {}) {
if (obj === null || obj === undefined) return schema;
if (Array.isArray(obj)) {
if (obj.length > 0) extractSchema(obj[0], `${path}[0]`, schema);
schema[`${path}`] = 'array';
} else if (typeof obj === 'object') {
Object.keys(obj).forEach(k =>
extractSchema(obj[k], `${path}${path ? '.' : ''}${k}`, schema)
);
} else {
schema[path] = typeof obj;
}
return schema;
}
分别对 Mock 和真实数据运行,输出两个对象,肉眼或用 diff 工具对比差异,能快速定位漏字段、类型错、多嵌套等问题。
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
立即学习“Java免费学习笔记(深入)”;
在请求层加一层响应拦截做运行时校验
开发阶段,在 axios 或 fetch 封装中临时加入校验逻辑,一旦发现字段不匹配就报错提醒:
- 检查关键字段是否存在(如
response.data.user.name) - 断言类型(如
typeof response.data.total === 'number') - 用
console.warn打印差异,而不是静默失败 - 上线前关掉即可,不影响生产环境
Mock 工具本身支持 Schema 校验(推荐升级方案)
如果用的是 Mock.js、MirageJS 或 MSW,优先启用其内置的 Schema 验证能力:
- MSW 支持用
io-ts或zod定义响应 Schema,Mock 返回前自动校验 - MirageJS 可在 route handler 中手动校验,或配合
json-schema-faker生成符合 Schema 的 Mock - 避免手写 Mock 数据,改用基于接口定义(如 OpenAPI/Swagger)自动生成
不复杂但容易忽略:Mock 和真实接口不一致,90% 是因为没人定期同步——建议把真实响应存为 snapshot 文件,每次接口变更后更新它,并让 Mock 基于它生成。

















