Skip to content

Latest commit

 

History

History
68 lines (41 loc) · 3.17 KB

20.md

File metadata and controls

68 lines (41 loc) · 3.17 KB

20 · 检查请求与响应契约

由 pnpm docs:lessons 生成。教学脚本在 src/data/network-state.json,合同补充在 scripts/generate-network-state.mjs。本页含教师参考答案。

目标与原理

检查方法、参数、响应,区分 HTTP 与业务成功。先修按 完整目录 的章节关系;基础操作、原理关系随本课讲解。

HTTP 状态描述传输契约;响应体的业务状态还需要单独判断。

先建立边界

Headers 看方法与状态;Payload 看实际发送字段

再核对证据

Response/Preview 看业务结构,不只看 status

最后验证结果

Edit and resend as fetch 可验证参数,副作用请求重放需限定本地实验

交互演示

改变请求参数和响应结构。模型不改变真实浏览器设置,不计为实战完成。

  1. 先预测一个条件变化的结果。
  2. 只改变一个条件,比较输入与输出。
  3. 将模型中的关系对应到真实 DevTools。

真实商城合同

症状:结算被拒绝,界面却显示成功或一直等待。

正常结果:正确 quantity 得到订单;业务缺货时不显示创建成功。

真实机制:真实 POST、422 参数失败与 200/ok=false。

  1. 从本课准备并打开独立商城;先打开 DevTools,再运行故障。
  2. 选中 checkout,检查 Method、Status、Request Payload 与 Response。
  3. 将 HTTP 422 与 HTTP 200/ok=false 分开解释,记录哪个层面失败。
  4. 在本地教学接口使用 Edit and resend as fetch 修正字段,检查是否真的创建订单。
  5. 先保存证据,再应用针对性的对照;错误对照不会通过页面检查。
  6. 回到教程选择真实证据,完成独立挑战后写下排查与恢复步骤。

独立挑战与参考答案

找到新字段或状态处理不一致。新会话改变输入与故障配置,可能再次抽到同一类型;按实际证据判断。

配置 原因 证据 修复/验证
配置1 数量字段名不符合接口契约 POST 中是 qty 而不是 quantity,HTTP 422 使用正确字段并核对响应
配置2 界面只检查 HTTP 成功,忽略业务拒绝 HTTP 200 但 ok=false、code=OUT_OF_STOCK 同时检查响应体并显示库存不足
干扰项 只凭界面颜色判断 没有对应请求或存储证据 同时改变全部条件且不复测

分级提示

  1. 先区分实际请求、浏览器策略、存储与界面处理,记录第一次偏离的环节。
  2. 选中 checkout,检查 Method、Status、Request Payload 与 Response。
  3. 比较两个候选解释:数量字段名不符合接口契约;界面只检查 HTTP 成功,忽略业务拒绝。保持其他输入一致再验证。

边界与恢复

Edit and resend 仅在本地教学接口重放;真实交易不可随意重复。

清理与会话约定见 共同合同。请在复盘写下条件、观察对象、实际值、根因、最小修改与恢复设置;将 HTTP 缓存、Cache Storage、内存状态分开。

官方参考。实测范围见 验收记录。