第 5 课
对比日志与 API 响应
在不打开完整 IDE diff 的情况下,定位日志片段、curl 输出和响应体中的回归。
日志和 API 响应经常以复制文本的形式出现,而不是仓库里的文件。文本 diff 非常适合这种快速的 before/after 检查。
日志片段对比
常见场景:
- 发布前后的错误堆栈
- 失败接口周围的 request/response 日志
- 两次 worker 任务输出
- 从监控面板复制的过滤日志
推荐流程:
- 复制最后一次正常运行的日志片段。
- 复制同一操作的失败日志片段。
- 在本地 diff。
- 优先关注第一条变化行,而不是整段噪声。
日志里常有时间戳、request ID、trace ID,每次运行都会变。可先手动忽略这些字段,或在可能时先裁剪再 diff。
API 响应对比
常见场景:
- 后端改动前后的
curl输出 - 网关转换后的响应 vs 上游响应
- 分页结构变化
- 错误载荷变化(
400与422的 body 差异)
示例:
{"status":"ok","items":[{"id":1,"name":"Ada"}]}
{"status":"ok","items":[{"id":1,"name":"Ada","plan":"pro"}]}
如果载荷是合法 JSON,且你关心字段级结构,JSON diff 可能更合适;如果 body 不完整、被压缩、带转义或混有 headers,文本 diff 往往更快。
响应对比:文本 diff 还是 JSON diff?
| 输入形态 | 更合适的工具 |
|---|---|
| 带 headers 的原始 curl 输出 | 文本 diff |
| 格式化 JSON 对象 | JSON diff |
| 日志行里嵌入 JSON | 先看文本 diff |
需要字段路径如 items[0].plan | JSON diff |
关键结论
对于日志和复制出来的响应,文本 diff 能帮你快速找到第一个有意义的变更。先裁剪噪声、对比最小有用样本,只有在结构很重要时再升级到 JSON diff。
对比完整载荷前,可以先用 文本对比 / Diff 检查器 试一个短响应样例。