全部指南

如何跨 API、SSH 与数据库调试 API 错误

API 错误往往只是可见症状。有效的后端排查会沿着请求继续检查服务器行为和数据库状态,然后回到最初请求验证修复。

推荐流程是:准确复现一个请求,检查与该请求相关的服务器证据,只查看相关数据库状态,关联发现,并在修改后重复原请求。当状态码或响应体不足以解释失败时,使用这套方法。

排查路径

  1. 1. API 症状
  2. 2. SSH / 运行时证据
  3. 3. 数据库状态
  4. 4. 根因
  5. 5. 验证修复

第 1 步 — 复现 API 错误

复现可以把模糊报告转化为可重复检查。对于 POST /orders,请从预期环境发送请求,并保留足够信息,把该失败请求与附近流量区分开。

  • 方法:确认请求确实是 POST,而不是相近的 GET、PUT 或重试端点。
  • URL:记录解析后的主机、路径和相关查询参数。
  • 环境:发送前确认 dev、test 或 prod,以及当前变量值。
  • 请求数据:保留数据结构和标识符,但不要在共享示例中放入秘密。
  • 状态与响应:记录 HTTP 状态、响应体和相关响应头。
  • 耗时:记录请求发生时间和持续时间,便于匹配服务器证据。

第 2 步 — 检查服务器证据

使用 SSH 检查处理该请求的服务证据。Unfour 提供终端、历史、文件、诊断和保存的任务;它不假设某种日志格式,也没有虚构的通用日志解析器。

应用日志

在相关时间窗口内搜索请求标识符、路由、错误消息或堆栈,避免把无关日志全部倒入排查。

进程与运行时状态

检查预期进程是否运行、重启、资源受限,或是否连接了正确依赖。

配置证据

比较部署环境、服务配置和相关远程文件是否符合请求预期。

第 3 步 — 检查数据库状态

把当前假设转化为最小的有效查询。对于订单失败,这可能是检查关联客户、库存记录、幂等键、约束或部分创建的订单,而不是浏览所有数据表。

  • 先从只读开始,尤其是生产环境或难以恢复状态的环境。
  • 使用前面步骤中的请求标识符和时间戳,让查询保持聚焦。
  • 确认数据库连接和 API、服务器检查指向同一环境。
  • 如果确实需要修改,请在执行前复核生成或建议的 SQL、目标数据行、事务行为和回滚方案。

第 4 步 — 关联证据

根因判断应同时解释三层证据,并正视相互矛盾的发现。对于 POST /orders,一条有效证据链可能是:API 在 14:03 失败,服务针对订单 ID 812 记录外键错误,而同一测试数据库中缺少关联客户记录。

时间

API 请求时间是否与服务器错误以及数据库事件或记录状态一致?

标识

请求 ID、实体 ID、用户 ID 和 trace 值是否指向同一操作?

环境

API 主机、SSH 连接和数据库连接是否都指向同一目标?

因果关系

建议的原因是否解释了该请求为何失败,还是仅仅发现了附近的异常?

第 5 步 — 验证修复

  1. 应用经过复核的修改

    只修改证据所支持的代码、配置或数据,并遵循该环境正常的评审与部署流程。

  2. 重复最初请求

    使用相同的相关数据和环境再次发送 POST /orders,而不是改用更容易成功的替代请求。

  3. 检查预期结果

    确认响应状态和响应体,再检查能定义成功的服务器或数据库副作用。

  4. 检查回归线索

    如果修复可能影响原请求之外的范围,请查看附近错误日志或意外的数据变化。

常见错误

  • 只读取 API 响应就猜测服务端原因。
  • 尚未理解错误状态如何产生,就直接修改数据库数据。
  • 从不同环境检查 API、SSH 或数据库证据。
  • 把代码修改或部署成功当作原始失败已经修复的证据。
  • 在多个无关工具之间复制不完整上下文,导致时间戳、标识符和环境信息逐渐漂移。

MCP 在哪里有帮助

MCP 可以辅助这套流程,但不必成为整篇排查的主题。兼容 Agent 可以查询已授权的 Unfour 工具、关联同一工作区中选定的证据,并在建议修复后重复检查。

  • 查询已授权的保存请求、脱敏历史、SSH 诊断、数据库结构或只读结果。
  • 比较时间戳、标识符、环境和结果,无需手动反复粘贴片段。
  • 修改后重新执行相同的范围明确检查,让验证沿用原证据路径。
  • 让受保护和高风险动作继续受工作区策略和内容绑定确认约束。

从一个可复现请求开始

使用 Unfour 将 API 症状、服务器证据、数据库状态和验证检查保留在一个本地优先工作区中。