Índice
Código
Códigos de error canónicos de las APIs de gRPC.
En ocasiones, pueden aplicarse varios códigos de error. Los servicios deben devolver el código de error más específico que corresponda. Por ejemplo, dale preferencia a OUT_OF_RANGE
sobre FAILED_PRECONDITION
si se aplican ambos códigos. Del mismo modo, prefiere NOT_FOUND
o ALREADY_EXISTS
en lugar de FAILED_PRECONDITION
.
Enumeraciones | |
---|---|
OK |
No es un error, se devuelve si la operación se realiza correctamente. Asignación HTTP: 200 OK |
CANCELLED |
La operación se canceló. Normalmente, lo hizo la persona que llama. Asignación HTTP: 499 El cliente cerró la petición |
UNKNOWN |
Error desconocido. Por ejemplo, este error puede devolverse cuando un valor Asignación HTTP: 500 Error interno del servidor |
INVALID_ARGUMENT |
El cliente especificó un argumento no válido. Ten en cuenta que es diferente de Asignación HTTP: 400 Petición incorrecta |
DEADLINE_EXCEEDED |
El tiempo de espera se ha agotado antes de que la operación se completara. En el caso de operaciones que cambian el estado del sistema, puede que se devuelva este error incluso si la operación se ha completado correctamente. Por ejemplo, una respuesta correcta de un servidor podría haberse retrasado el tiempo suficiente para que se agote el tiempo de espera. Asignación HTTP: 504 Tiempo de espera de la pasarela |
NOT_FOUND |
No se encontró ninguna entidad solicitada (por ejemplo, un archivo o un directorio). Nota para los desarrolladores de servidores: si se deniega una solicitud para toda una clase de usuarios (por ejemplo, en el caso de un lanzamiento gradual de una función o de una lista de permitidos no documentada), se puede usar Asignación HTTP: 404 No encontrado |
ALREADY_EXISTS |
La entidad que un cliente ha intentado crear (por ejemplo, un archivo o un directorio) ya existe. Asignación HTTP: 409 Conflicto |
PERMISSION_DENIED |
La persona que llama no tiene permiso para ejecutar la operación especificada. Asignación HTTP: 403 Prohibido |
UNAUTHENTICATED |
La petición no cuenta con credenciales de autenticación válidas para la operación. Asignación HTTP: 401 No autorizado |
RESOURCE_EXHAUSTED |
Algunos recursos se han agotado; es posible que una cuota por usuario, o tal vez todo el sistema de archivos, esté sin espacio. Asignación HTTP: 429 Demasiadas peticiones |
FAILED_PRECONDITION |
Se ha rechazado la operación porque el sistema no se encuentra en un estado requerido para la ejecución de dicha operación. Por ejemplo, el directorio que se va a eliminar no está vacío, una operación rmdir no se aplica a un directorio, etc. Los implementadores de servicios pueden usar las siguientes directrices para decidir entre Asignación HTTP: 400 Petición incorrecta |
ABORTED |
La operación se anuló, normalmente debido a un problema de simultaneidad, como un error en la verificación del secuenciador o la cancelación de una transacción. Consulta las directrices anteriores para decidir entre Asignación HTTP: 409 Conflicto |
OUT_OF_RANGE |
Se intentó realizar la operación más allá del rango válido. Por ejemplo, buscando o leyendo más allá del final del archivo. A diferencia de Hay una pequeña superposición entre Asignación HTTP: 400 Petición incorrecta |
UNIMPLEMENTED |
La operación no se ha desplegado, no es compatible o no está habilitada en este servicio. Asignación HTTP: 501 No desplegado |
INTERNAL |
Errores internos. Indica que se han roto algunas invariables previstas por el sistema. Este código de error se reserva para los errores graves. Asignación HTTP: 500 Error interno del servidor |
UNAVAILABLE |
El servicio no está disponible en este momento. Es muy probable que se trate de una condición transitoria, que puede corregirse volviendo a intentarlo con una interrupción. Ten en cuenta que no siempre es seguro volver a intentar operaciones no idempotentes. Consulta las directrices anteriores para decidir entre Asignación HTTP: 503 Servicio no disponible |
DATA_LOSS |
Datos dañados o pérdida irrecuperable de datos. Asignación HTTP: 500 Error interno del servidor |
Estado
El tipo Status
define un modelo de error lógico adecuado para diferentes entornos de programación, incluidas las APIs REST y RPC. Lo usa gRPC. Cada mensaje Status
contiene tres elementos de datos: código de error, mensaje de error y detalles del error.
Puedes consultar más información sobre este modelo de error y cómo trabajar con él en la guía de diseño de APIs.
Campos | |
---|---|
code |
Código de estado, que debe ser un valor de enumeración de |
message |
Un mensaje de error dirigido al desarrollador, que debe estar en inglés. Cualquier mensaje de error visible para el usuario debe localizarse y enviarse en el campo |
details[] |
Una lista de mensajes que llevan los detalles del error. Hay un conjunto común de tipos de mensajes para que las API lo utilicen. |