API 错误排查助手(专业版)
输入
| 字段 | 必填 | 说明 |
|---|---|---|
| status | 是 | HTTP状态码 |
| context | 否 | 报错上下文文本 |
输出
错误分类 + 有序排查清单 + 下一步动作
Python 引擎(可独立运行)
# -*- coding: utf-8 -*-
def classify_error(status):
status = int(status)
if status < 100 or status > 599:
return "未知", ["该状态码非标准HTTP语义,人工查服务端定义"]
if status == 401:
return "鉴权", ["检查token是否过期或格式", "检查Authorization头写法", "检查密钥权限范围"]
if status == 403:
return "权限", ["确认账号有该接口权限", "检查scope/角色配置", "联系管理员授权"]
if status == 429:
return "限流", ["检查QPS是否超限", "加退避重试(指数退避)", "申请提高配额"]
if 400 <= status < 500:
return "客户端", ["核对请求参数与schema", "检查必填字段/类型", "对照错误信息修正"]
if status >= 500:
return "服务端", ["查服务端日志与异常栈", "确认依赖服务可用", "联系后端/关注健康检查"]
return "未知", ["该状态码非标准HTTP语义,人工查服务端定义"]
def build_plan(category, context=""):
steps = classify_error(0) if category == "未知" else None
cat, steps = (category, steps) if steps else classify_error({"鉴权":401,"权限":403,"限流":429}.get(category, 400))
note = f"上下文提示: {context}" if context else ""
return {"category": cat, "steps": steps, "note": note, "actionable": len(steps) > 0}
硬性规则
- 状态码按标准HTTP语义分类,不臆造
- 排查步骤必须可执行(动词开头),不写"检查一下"空话
- 非标准码 → 标"未知"并提示人工,不硬猜
示例
classify_error(401) → ("鉴权", [token过期检查, Authorization头检查, 权限范围检查])
classify_error(429) → ("限流", [QPS检查, 指数退避, 提高配额])