code |
integer |
No |
|
|
Code 是业务错误码
用于程序处理特定错误场景
示例:30101001 |
detail |
string |
No |
|
|
Detail 是针对此具体错误实例的人类可读解释
可以包含具体的错误细节,如"Field 'email' is required" |
errors |
array of
See dto.FieldViolation |
No |
|
|
Errors 是字段级验证错误列表(扩展字段)
遵循 Web API 标准实践,每个错误包含字段名和错误信息 |
i18n_args |
object |
No |
|
|
I18nArgs 是国际化参数
用于动态填充翻译模板 |
i18n_key |
string |
No |
|
|
I18nKey 是国际化键
用于客户端本地化错误消息
示例:"error.user_not_found" |
instance |
string |
No |
|
|
Instance 是发生问题的具体URI引用
通常是请求的URL,可能包含查询参数
示例:"/api/v1/users?limit=invalid" |
request_id |
string |
No |
|
|
RequestID 是请求唯一标识
用于日志关联和问题追踪
示例:"req_550e8400-e29b-41d4-a716-446655440000" |
retry_after |
integer |
No |
|
|
RetryAfter 用于 429 Too Many Requests 响应
指示客户端应在多少秒后重试请求(RFC 6585) |
service |
string |
No |
|
|
Service 是服务名
用于微服务架构中定位错误来源
示例:"auth-service" |
span_id |
string |
No |
|
|
SpanID 是当前 span 标识
用于精确定位分布式链路中的当前节点 |
status |
integer |
No |
|
|
Status 是产生的HTTP状态码
用于客户端区分问题类型,不随Accept-Language变化
示例:400, 401, 403, 404, 500 |
timestamp |
string |
No |
|
|
Timestamp 是错误发生时间
ISO 8601 格式
示例:"2026-04-03T12:00:00Z" |
title |
string |
No |
|
|
Title 是简短、人类可读的问题类型摘要
相同的 Type 应该始终有相同的 Title(不随实例变化)
示例:"Invalid Request Parameters" |
trace_id |
string |
No |
|
|
TraceID 是分布式追踪标识
遵循 W3C Trace Context 标准
示例:"00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01" |
type |
string |
No |
|
|
Type 是标识问题类型的URI引用
当该URI被解引用时,应提供人类可读的文档
示例:"https://api.example.com/errors/invalid-request" |