Índice
Status
(mensaje)
Estado
El tipo de Status
define un modelo de error lógico que es adecuado para entornos de programación diferentes, incluidas las API de REST y las API de RPC. Lo usa gRPC. El modelo de errores está diseñado para ser de la siguiente forma:
- Fácil de usar y entender para la mayoría de los usuarios
- Lo suficientemente flexible para satisfacer necesidades inesperadas
Descripción general
El mensaje Status
contiene tres datos: código de error, mensaje de error y detalles del error. El código de error debe ser un valor de enumeración de google.rpc.Code
, pero puede aceptar códigos de error adicionales si es necesario. El mensaje de error debe ser un mensaje en inglés dirigido al desarrollador que ayude a los desarrolladores a understand y understand el error. Si se necesita un mensaje de error localizado orientado al usuario, coloca el mensaje localizado en los detalles del error o localízalo en el cliente. Los detalles opcionales del error pueden contener información arbitraria sobre el error. Hay un conjunto predefinido de tipos de detalles del error en el paquete google.rpc
que puede usarse para condiciones de error comunes.
Asignación de idiomas
El mensaje Status
es la representación lógica del modelo de errores, pero no es necesariamente el formato de conexión real. Cuando el mensaje Status
se expone en diferentes bibliotecas cliente y diferentes protocolos de conexión, puede asignarse de manera diferente. Por ejemplo, probablemente se asignará a algunas excepciones en Java, pero es más probable que se asigne a algunos códigos de error en C.
Otros usos
El modelo de error y el mensaje Status
pueden usarse en una variedad de entornos, con o sin API, para proporcionar una experiencia de desarrollador consistente en diferentes entornos.
Los ejemplos de usos de este modelo de error incluyen lo siguiente:
Errores parciales. Si el servicio debe mostrar errores parciales al cliente, puede incorporar
Status
en la respuesta normal para indicar los errores parciales.Errores de flujo de trabajo. Un flujo de trabajo típico tiene varios pasos. Cada paso puede tener un mensaje
Status
para los informes de errores.Operaciones por lotes. Si un cliente usa una solicitud por lotes y una respuesta por lotes, el mensaje
Status
debe usarse directamente dentro de la respuesta por lotes y debe haber uno para cada respuesta secundaria de error.Operaciones asíncronas. Si una llamada a la API incorpora los resultados de la operación asíncrona en su respuesta, el estado de esas operaciones debe representarse directamente mediante el uso del mensaje
Status
.Registros. Si algunos errores de la API se almacenan en los registros, el mensaje
Status
podría usarse directamente después de cualquier eliminación necesaria por motivos de seguridad o privacidad.
Campos | |
---|---|
code |
El código de estado, que debe ser un valor enum de |
message |
Un mensaje de error dirigido al desarrollador, que debe estar en inglés. Cualquier mensaje de error dirigido al usuario debe localizarse y enviarse al campo |
details[] |
Una lista de mensajes que contienen los detalles del error. Hay un conjunto común de tipos de mensajes para que usen las API. |