错误响应设计

错误响应要机器可读且可追踪:统一结构包含类型、标题、状态、详情与实例标识(Problem Details),前端按类型分支处理,配合字段级校验信息。

示例

示例
{
  "type": "https://errors.example.com/validation",
  "title": "Validation failed",
  "status": 422,
  "detail": "field 'email' is invalid",
  "instance": "/requests/7f3c9a52"
}
错误信息不要携带堆栈与内部标识;给调用方的提示要可行动,内部细节走日志与关联 ID。

易错点

  • 把堆栈直接返回给调用方,泄露实现细节
  • 错误结构随接口随意变化,客户端无法统一处理

数据来源与参考

  • RFC 9457:Problem Details for HTTP APIs
  • Microsoft REST API Guidelines:Errors
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌