SuperAPI AI 工具集

api-error-handling

编程与开发

查看项目

更新于 10-15 12:11

技能介绍

用途

该技能面向 API 错误处理的全生命周期,从抛出类型化错误,到日志记录、监控,再到面向客户端的响应格式化,帮助构建健壮的错误处理系统。它强调标准化错误响应、详细日志、错误分类和用户友好的错误消息。

主要能力

  • 标准化错误响应格式:提供最小化的统一错误响应结构,包含 error 对象,内含 code、message、statusCode、requestId、timestamp 和 details 字段。details 可用于列出字段级错误,例如 email 字段的 INVALID_EMAIL。
  • 自定义错误类:以 Node.js 为例,提供 ApiError 类,支持传入 code、message、statusCode、details,并自动补充 timestamp;statusCode 可回退到 ERROR_CODES 映射中的状态码,默认 500。
  • 错误码与响应格式化:参考指南中包含完整的 ERROR_CODES 映射、响应格式化器以及 Node.js 与 Python 的全局中间件。
  • 重试策略与熔断器:涵盖指数退避、抖动(jitter)以及熔断器模式。
  • 监控与追踪:包含 Sentry 集成、错误率指标以及 /metrics/errors 端点。
  • 校验模式:包含输入校验、schema 守卫,以及在错误发生前检测不良响应。

使用方式

该技能以参考指南形式组织,详细实现位于 references/ 目录,分为四个指南:错误码与响应格式、重试策略与熔断器、监控与追踪、校验模式。快速开始部分给出了标准化错误响应格式的 JSON 示例,以及 Node.js 自定义错误类的定义与用法示例,例如抛出 NOT_FOUND、VALIDATION_ERROR 等错误。

适用场景

  • 跨端点一致地处理 API 错误
  • 通过请求追踪调试生产问题
  • 实现错误恢复策略(重试、熔断器)
  • 监控错误率并对异常峰值告警
  • 向客户端提供有意义、可操作的错误消息
  • 在处理前校验请求输入
  • 长期跟踪错误模式

最佳实践

应当做:在所有端点使用一致的错误响应格式;每个错误都包含 requestId 和 traceId 以便可观测;5xx 错误按 ERROR 级别记录,4xx 按 WARN 级别记录;提供可操作的错误消息,告诉客户端需要修复什么;使用标准 HTTP 状态码(4xx 客户端错误,5xx 服务端错误);对瞬时故障实现带指数退避的重试;使用熔断器防止级联故障;尽早校验输入并一次性返回所有字段错误;监控错误率并对异常峰值告警。

不应做:向客户端暴露堆栈跟踪或内部实现细节;对错误响应返回 HTTP 200;静默吞掉错误;记录敏感数据(密码、令牌、PII);使用“Something went wrong”之类的模糊消息;将错误处理逻辑与业务逻辑混在一起;重试非幂等操作或客户端错误(4xx);不同端点返回不同的错误结构。

限制

资料未提供该技能的具体安装命令、支持的编程语言完整列表、收费或价格信息、平台依赖以及实际效果数据,这些内容暂未提供。