En el mundo de las comunicaciones a través de la red, es esencial contar con un sistema de códigos de estado que permita a los clientes y servidores comunicarse de manera efectiva. En el caso de gRPC, se utiliza un conjunto de códigos de estado bien definidos como parte de la API RPC (Remote Procedure Call). Estos códigos de estado proporcionan información sobre el resultado de una operación y permiten a los clientes y servidores tomar decisiones basadas en ellos.
A continuación, presentaremos una lista completa de los códigos de estado utilizados en gRPC, junto con sus descripciones y ejemplos de situaciones en las que se generan. Esta guía tiene como objetivo proporcionar una referencia completa para aquellos que trabajan con gRPC y desean comprender mejor los códigos de estado utilizados en esta tecnología.
Código 0: OK
El código de estado 0, "OK", se utiliza para indicar que una operación se ha completado con éxito y no ha ocurrido ningún error. Este código se devuelve cuando una operación se ha realizado correctamente y no hay necesidad de tomar ninguna acción adicional.
Código 1: CANCELLED
El código de estado 1, "CANCELLED", se utiliza para indicar que una operación ha sido cancelada, generalmente por el cliente. Este código puede ser devuelto cuando el cliente decide cancelar una operación antes de que se complete.
Código 2: UNKNOWN
El código de estado 2, "UNKNOWN", se utiliza para indicar un error desconocido. Este código puede ser devuelto cuando se produce un error que no se puede clasificar en ninguna otra categoría específica.
Código 3: INVALID_ARGUMENT
El código de estado 3, "INVALID_ARGUMENT", se utiliza para indicar que el cliente ha especificado un argumento inválido. Este código puede ser devuelto cuando el cliente proporciona argumentos que son problemáticos, independientemente del estado del sistema.
Código 4: DEADLINE_EXCEEDED
El código de estado 4, "DEADLINE_EXCEEDED", se utiliza para indicar que se ha superado el plazo establecido para una operación. Este código puede ser devuelto cuando una operación no se ha completado dentro del plazo establecido.
Código 5: NOT_FOUND
El código de estado 5, "NOT_FOUND", se utiliza para indicar que no se ha encontrado una entidad solicitada. Este código puede ser devuelto cuando se solicita una entidad (como un archivo o un directorio) que no existe.
Código 6: ALREADY_EXISTS
El código de estado 6, "ALREADY_EXISTS", se utiliza para indicar que la entidad que el cliente intentó crear ya existe. Este código puede ser devuelto cuando el cliente intenta crear una entidad (como un archivo o un directorio) que ya existe.
Código 7: PERMISSION_DENIED
El código de estado 7, "PERMISSION_DENIED", se utiliza para indicar que el llamador no tiene permiso para ejecutar la operación especificada. Este código no debe utilizarse para rechazar solicitudes debido a la falta de recursos, sino para denegar solicitudes basadas en el control de acceso.
Código 8: RESOURCE_EXHAUSTED
El código de estado 8, "RESOURCE_EXHAUSTED", se utiliza para indicar que se ha agotado algún recurso. Este código puede ser devuelto cuando se ha alcanzado un límite de recursos, como una cuota por usuario o cuando el sistema de archivos está lleno.
Código 9: FAILED_PRECONDITION
El código de estado 9, "FAILED_PRECONDITION", se utiliza para indicar que una operación ha sido rechazada debido a que el sistema no se encuentra en el estado requerido para su ejecución. Este código puede ser devuelto cuando se intenta realizar una operación que no puede ser completada debido a un estado incorrecto del sistema.
Código 10: ABORTED
El código de estado 10, "ABORTED", se utiliza para indicar que una operación ha sido abortada debido a un problema de concurrencia, como una falla en la verificación de secuencia o una transacción abortada. Este código puede ser devuelto cuando se produce un problema de concurrencia que impide la finalización de una operación.
Código 11: OUT_OF_RANGE
El código de estado 11, "OUT_OF_RANGE", se utiliza para indicar que se ha intentado realizar una operación más allá del rango válido. Este código puede ser devuelto cuando se intenta realizar una operación que está fuera del rango válido, como buscar o leer más allá del final de un archivo.
Código 12: UNIMPLEMENTED
El código de estado 12, "UNIMPLEMENTED", se utiliza para indicar que una operación no está implementada o no es compatible/activada en el servicio. Este código puede ser devuelto cuando se intenta realizar una operación que no ha sido implementada o no es compatible con el servicio.
Código 13: INTERNAL
El código de estado 13, "INTERNAL", se utiliza para indicar errores internos del sistema. Este código se reserva para errores graves que rompen las invariantes esperadas por el sistema subyacente.
Código 14: UNAVAILABLE
El código de estado 14, "UNAVAILABLE", se utiliza para indicar que el servicio no está disponible en el momento. Este código puede ser devuelto cuando el servicio no está disponible temporalmente y se espera que vuelva a estar disponible en el futuro.
Código 15: DATA_LOSS
El código de estado 15, "DATA_LOSS", se utiliza para indicar pérdida o corrupción irreparable de datos. Este código puede ser devuelto cuando se produce una pérdida o corrupción de datos que no se puede recuperar.
Código 16: UNAUTHENTICATED
El código de estado 16, "UNAUTHENTICATED", se utiliza para indicar que la solicitud no tiene credenciales de autenticación válidas. Este código puede ser devuelto cuando se realiza una solicitud sin las credenciales de autenticación adecuadas.
En resumen, los códigos de estado de gRPC proporcionan información valiosa sobre el resultado de una operación y permiten a los clientes y servidores tomar decisiones basadas en ellos. Al comprender estos códigos y sus significados, los desarrolladores pueden crear sistemas más robustos y confiables utilizando gRPC.
Esperamos que esta guía haya sido útil para comprender los códigos de estado de gRPC y cómo se utilizan en la comunicación a través de la red. Si tienes alguna pregunta adicional o necesitas más información, no dudes en contactarnos. Estaremos encantados de ayudarte en lo que necesites.
¡Gracias por leer nuestra guía completa sobre los códigos de estado de gRPC!