Package google.rpc
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Положение дел
Тип Status
определяет логическую модель ошибок, подходящую для различных сред программирования, включая API REST и API RPC. Он используется gRPC . Модель ошибок спроектирована так, чтобы:
- Простой в использовании и понятный для большинства пользователей
- Достаточно гибкий, чтобы удовлетворить неожиданные потребности
Обзор
Сообщение Status
содержит три части данных: код ошибки, сообщение об ошибке и сведения об ошибке. Код ошибки должен быть значением перечисления google.rpc.Code
, но при необходимости он может принимать дополнительные коды ошибок. Сообщение об ошибке должно быть обращено к разработчику на английском языке и поможет разработчикам понять и устранить ошибку. Если требуется локализованное сообщение об ошибке для пользователя, поместите локализованное сообщение в сведения об ошибке или локализуйте его в клиенте. Необязательные сведения об ошибке могут содержать произвольную информацию об ошибке. В пакете google.rpc
имеется предопределенный набор типов сведений об ошибках, которые можно использовать для устранения распространенных ошибок.
Языковое сопоставление
Сообщение Status
является логическим представлением модели ошибки, но оно не обязательно соответствует фактическому формату провода. Когда сообщение Status
отображается в разных клиентских библиотеках и разных проводных протоколах, оно может отображаться по-разному. Например, он, скорее всего, будет сопоставлен с некоторыми исключениями в Java, но, скорее всего, будет сопоставлен с некоторыми кодами ошибок в C.
Другое использование
Модель ошибок и сообщение Status
можно использовать в различных средах, как с API, так и без них, чтобы обеспечить единообразие работы разработчиков в разных средах.
Примеры использования этой модели ошибок включают в себя:
Частичные ошибки. Если службе необходимо вернуть клиенту частичные ошибки, она может встроить Status
в обычный ответ, чтобы указать на частичные ошибки.
Ошибки рабочего процесса. Типичный рабочий процесс состоит из нескольких этапов. Каждый шаг может иметь сообщение Status
для сообщения об ошибках.
Пакетные операции. Если клиент использует пакетный запрос и пакетный ответ, сообщение Status
должно использоваться непосредственно внутри пакетного ответа, по одному для каждого подответа на ошибку.
Асинхронные операции. Если вызов API включает в себя результаты асинхронной операции, статус этих операций должен быть представлен непосредственно с помощью сообщения Status
.
Ведение журнала. Если некоторые ошибки API сохраняются в журналах, Status
сообщения можно использовать сразу после любого удаления, необходимого по соображениям безопасности/конфиденциальности.
Поля |
---|
code | int32 Код состояния, который должен быть значением перечисления google.rpc.Code . |
message | string Сообщение об ошибке для разработчика, которое должно быть на английском языке. Любое сообщение об ошибке, обращенное к пользователю, должно быть локализовано и отправлено в поле google.rpc.Status.details или локализовано клиентом. |
details[] | Any
Список сообщений, содержащих сведения об ошибке. Существует общий набор типов сообщений для использования API. |
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-24 UTC.
[null,null,["Последнее обновление: 2025-07-24 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eStatus\u003c/code\u003e type defines a consistent and flexible error model suitable for various programming environments, including REST APIs and RPC APIs.\u003c/p\u003e\n"],["\u003cp\u003eIt provides three key pieces of information: an error code using \u003ccode\u003egoogle.rpc.Code\u003c/code\u003e, a developer-facing English error message, and optional error details for context.\u003c/p\u003e\n"],["\u003cp\u003eWhile logically represented by the \u003ccode\u003eStatus\u003c/code\u003e message, its actual implementation may vary across languages and wire protocols.\u003c/p\u003e\n"],["\u003cp\u003eThis error model can be utilized in diverse scenarios beyond APIs to ensure a uniform developer experience, including partial errors, workflow errors, batch operations, and asynchronous operations.\u003c/p\u003e\n"]]],["The `Status` message defines an error model with three data pieces: `code`, `message`, and `details`. The `code` is an error code, `message` is a developer-facing English error message, and `details` contains additional error information. This model can be used for partial, workflow, batch, and asynchronous operations and in logging. It is designed for simplicity and flexibility and is adaptable across different programming environments and API types, with a mapping system that can change based on implementation.\n"],null,["# Package google.rpc\n\nIndex\n-----\n\n- [Status](/assistant/sdk/reference/rpc/google.rpc#google.rpc.Status) (message)\n\nStatus\n------\n\nThe `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n#### Overview\n\nThe `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of `google.rpc.Code`, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` that can be used for common error conditions.\n\n#### Language mapping\n\nThe `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.\n\n#### Other uses\n\nThe error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client, it may embed the `Status` in the normal response to indicate the partial errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the `Status` message should be used directly inside batch response, one for each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation results in its response, the status of those operations should be represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could be used directly after any stripping needed for security/privacy reasons.\n\n| Fields ||\n|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `code` | `int32` The status code, which should be an enum value of `google.rpc.Code`. |\n| `message` | `string` A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details](/assistant/sdk/reference/rpc/google.rpc#google.rpc.Status.FIELDS.repeated.google.protobuf.Any.google.rpc.Status.details) field, or localized by the client. |\n| `details[]` | [Any](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Any) A list of messages that carry the error details. There is a common set of message types for APIs to use. |"]]