hefestoapicontainer

Control de errores

Recuerda que el flujo de directivas consiste en que se vayan ejecutando una detrás de otra.

Este flujo se interrumpe, si se lanza una excepción desde cualquier directiva de esta manera:

    $state->memory()->set('error.status', 400);
    $state->memory()->set('error.message', 'id is mandatory');
    throw new \Exception('id is mandatory');

No es obligatorio que almacenes en memoria el error.status y el error.message, pero si lo haces la respuesta http incluirá ese status y ese message.

Una vez se ha lanzado la excepción, no se ejecuta ninguna directiva más, excepto aquellas que estén en el grupo ERROR_FLOW.

Esto nos permite tener una directiva que capture la excepción y modifique el status y la response que devolver al cliente. Por defecto, esta directiva es OnError, que formatea los mensajes en la respuesta a JSON. No hace falta que configures OnError, al crear cualquier API desde el cliente vendrá configurada en el after de la API. Por lo que afectará a todos los endpoints.

Si el endpoint devuelve html, puedes crear tu propia directiva de manejo de errores de forma que devuelva una vista, sólo tienes que incluir a la directiva de manejo de errores en el grupo ERROR_FLOW.

Ir a la home