您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# API错误返回规范有哪些
## 目录
1. [引言](#引言)
2. [错误返回的基本结构](#错误返回的基本结构)
3. [HTTP状态码规范](#http状态码规范)
4. [错误码设计原则](#错误码设计原则)
5. [错误信息格式](#错误信息格式)
6. [常见错误分类](#常见错误分类)
7. [国际化与本地化](#国际化与本地化)
8. [安全注意事项](#安全注意事项)
9. [最佳实践案例](#最佳实践案例)
10. [总结](#总结)
---
## 引言
在API开发中,规范的错误返回机制是保证系统可维护性和用户体验的关键要素。据统计,超过40%的API相关问题源于不规范的错误处理。本文将深入探讨API错误返回的完整规范体系。
(此处可扩展引入行业背景数据或案例)
---
## 错误返回的基本结构
标准的错误响应应包含以下核心字段:
```json
{
"code": "INVALID_PARAMETER",
"message": "Invalid email format",
"details": {
"field": "email",
"requirement": "RFC 5322 format"
},
"trace_id": "a1b2c3d4-5678-90ef"
}
字段名 | 类型 | 必填 | 说明 |
---|---|---|---|
code | string | 是 | 业务错误码 |
message | string | 是 | 人类可读的错误描述 |
details | object | 否 | 调试用详细信息 |
trace_id | string | 推荐 | 请求追踪ID(用于日志关联) |
应严格遵循RFC 7231标准:
状态码 | 类别 | 典型场景 |
---|---|---|
400 | Bad Request | 参数校验失败 |
401 | Unauthorized | 未提供有效凭证 |
403 | Forbidden | 权限不足 |
404 | Not Found | 资源不存在 |
429 | Too Many Requests | 限流触发 |
500 | Server Error | 未处理的服务器异常 |
503 | Service Unavailable | 服务不可用 |
retry_after
字段RATE_LIMIT_EXCEEDED
)AUTH_
/PAYMENT_
)建议采用三级分类:
<服务标识>_<模块>_<具体错误>
└── USER_SERVICE
├── AUTH_INVALID_TOKEN
└── PROFILE_EML_EXISTS
范围 | 用途 |
---|---|
000-099 | 系统级错误 |
100-199 | 认证授权错误 |
200-299 | 业务校验错误 |
details
字段{
"message": {
"en": "Invalid parameter",
"zh-CN": "参数无效"
}
}
{
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"details": [
{
"field": "age",
"error": "Must be positive integer"
}
]
}
{
"code": "INSUFFICIENT_BALANCE",
"message": "Account balance不足",
"required_amount": 100.00,
"current_balance": 80.00
}
{
"code": "DATABASE_TIMEOUT",
"message": "系统繁忙,请稍后重试",
"retryable": true,
"retry_after": 30
}
errors:
AUTH_FLED:
en: "Authentication failed"
zh: "认证失败"
ja: "認証に失敗しました"
信息泄露防护
限流信息暴露
// 不建议
{
"remaining": 0,
"reset_time": "2023-01-01T00:00:00Z"
}
错误分类策略
{
"message": "Validation Failed",
"errors": [
{
"resource": "Issue",
"field": "title",
"code": "missing_field"
}
],
"documentation_url": "https://docs.github.com/rest/reference/issues#create-an-issue"
}
{
"error": {
"type": "card_error",
"code": "expired_card",
"doc_url": "https://stripe.com/docs/error-codes/expired-card"
}
}
完整的错误返回规范应包含: 1. 标准的HTTP状态码 2. 结构化的错误体 3. 明确的错误分类 4. 完善的安全控制 5. 可扩展的国际化方案
“好的错误处理不是事后补救,而是事先设计” —— Martin Fowler
(此处可加入参考文献和扩展阅读链接) “`
注:实际使用时可根据需要: 1. 补充具体行业的案例 2. 增加各字段的详细示例 3. 插入架构图或状态转换图 4. 添加团队内部的特殊规范要求
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。