索引
Status
(消息)
Status
Status
类型定义了适用于不同编程环境(包括 REST API 和 RPC API)的逻辑错误模型。此类型供 gRPC 使用。错误模型的设计宗旨是:
- 方便大多数用户使用和理解
- 足够灵活地应对意外需求
概览
Status
消息包含三部分数据:即错误代码、错误消息和错误详情。错误代码应为 google.rpc.Code
的枚举值,但如果需要,也可以接受其他错误代码。错误消息应为面向开发者的英语版消息,旨在帮助开发者理解并解决相关错误。如果需要提供面向用户的本地化版错误消息,可以将本地化后的消息放入错误详情中,也可以在客户端将该消息本地化。错误详情是可选项,其中可以包含错误的任意相关信息。google.rpc
软件包中包含一组预定义的错误详情类型,可用于常见的错误情况。
语言映射
Status
消息是错误模型的逻辑表示形式,但它不一定是实际的传输格式。如果 Status
消息会在不同的客户端库和不同的传输协议中公开,那么此消息的映射方式可能会有所不同。例如,此消息可能映射到 Java 中的一些异常,但更可能映射到 C 中的一些错误代码。
其他用途
错误模型和 Status
消息可用于各种环境(无论是否使用 API),以便为处于不同环境下的开发者提供一致的体验。
下面是此错误模型的一些实例运用:
部分错误。如果服务需要将部分错误返回到客户端,则可以将
Status
嵌入正常响应中以指示部分错误。工作流错误。典型的工作流包含多个步骤。可以针对每个步骤显示一条
Status
消息以报告错误。批量操作。如果客户端使用批量请求和批量响应,则应直接在批量响应中使用
Status
消息,使每个错误子响应对应一条消息。异步操作。如果 API 调用将异步操作结果嵌入其响应中,则应直接使用
Status
消息表示这些操作的状态。日志记录。如果某些 API 错误存储在日志中,则在出于安全/隐私考虑删除任何必要的内容之后,可以直接使用
Status
消息。
字段 | |
---|---|
code |
状态代码,应为 |
message |
面向开发者的错误消息(应采用英语)。对于面向用户的错误消息,可以进行本地化并通过 |
details[] |
包含错误详情的消息列表。有一组消息类型常用于 API。 |