Tema anterior: Códigos de estado de HTTP

Tema siguiente: Construcción de URL


Errores

Cuando un cliente recibe un error del intervalo 400 o 5XX de las API de BFC, la carga útil resultante está formada por un registro driver_fault. El registro driver_fault contiene los campos siguientes:

Campo

Contenido

Notes

Tipo

string() del tipo client | driver | dependency

Indica si el error está provocado por la solicitud del cliente, si es un error interno del controlador o si está originado por una dependencia (en cuyo caso se transferirá información adicional en el campo del motivo, por ejemplo el driver_faults anidado generado en la dependencia).

subtype

string() del tipo missing | conflict | unexpected

Indica que la llamada está intentando realizar una operación en un recurso ausente, causa un conflicto dentro del BFC (por ejemplo, la creación o actualización de una entidad generaría un duplicado) o es inesperada en cualquier otro sentido (valor predeterminado).

Lo utiliza la API de BFC para ayudar en la devolución de códigos de respuesta de HTTP correctos. Por ejemplo, un subtipo missing genera un código de estado de HTTP 404 mientras que un conflicto genera un código de estado 403.

code

string() con los valores completos <tenant>/<component_name>.<fault>.

Por ejemplo: bbc/grid_service.fault_required_field, bbc/grid_service.fault_runtime_error.

fmt

string() con {integer()} para hacer referencia a los argumentos.

Por ejemplo: "El nombre del grid {0} no es válido". {0} se reemplaza por la primera entrada del campo args.

args

Lista que contiene [number()|string()|string()]

Estos valores se combinan (mediante sustitución) con fmt para crear el mensaje de error.

Ruta

[integer()]

Representa la ruta en la lista de argumentos de funciones donde está la incidencia. Si el error está en el segundo valor del tercer argumento, la ruta sería [2,1]. Los valores se inician en 0, los argumentos tipo tupla se consideran como listas y los registros se consideran como listas y excluyen el primer argumento (el nombre del registro) en sus rutas.

function

Nombre string() de la función (además de la aridad) que se está ejecutando.

Por ejemplo: "createGrid/4". Este ejemplo indica que se ha hecho una llamada a la función createGrid, que utiliza cuatro argumentos.

dependency_id

integer()

El ID de componente del componente de dependencia que ha generado el fallo. Se utiliza cuando driver_fault type = dependency indica que la solicitud está aprovechando otro componente o recurso externo para ejecutar la operación.

motivo

[driver_fault()]

Contiene algunos errores anidados.

detalles

string()

Contiene más información detallada sobre el error. Por ejemplo, el seguimiento de pila.

Nota: Todos los campos contienen el valor JSON null cuando están vacíos.