Implementación de un manejador de errores en una API REST
Utilice la vista REST API Description para implementar manejadores de errores en una API REST.
Antes de empezar
Acerca de esta tarea
- Captura
- Si se genera una excepción al procesar una solicitud en un subflujo de una operación y ese subflujo no maneja la excepción, se direcciona un mensaje al manejador de errores de captura. Por ejemplo, si un nodo JavaCompute del subflujo de una operación emite una excepción y dicha excepción no la captura un nodo TryCatch , dicha excepción se pasa al manejador de errores de captación.
- Tiempo de espera
- Si un subflujo para una operación procesa un mensaje y ese subflujo no responde al cliente en el límite de tiempo esperado, se direcciona un mensaje al manejador de errores. A continuación, se puede utilizar el manejador de errores de tiempo de espera excedido para pasar una respuesta al cliente que informe a dicho cliente de que la operación ha excedido el tiempo de espera. Si se produce esta situación, el subflujo de una operación continúa procesando el mensaje. El proceso de ese mensaje no se cancela. Sin embargo, no se puede enviar una respuesta al cliente.Nota: Dependiendo del cliente, el cliente puede agotar el tiempo de espera sin recibir una respuesta de la llamada a la operación, en cuyo caso, cualquier respuesta que se envíe no se recibirá.
- Anomalía
- Si se produce un error mientras se procesa la solicitud del cliente y los manejadores de errores Catch o Timeout no manejan ese error, se direcciona un mensaje al manejador de errores Failure.
Los manejadores de errores en una API REST se implementan como un subflujo. Debe utilizar IBM App Connect Enterprise Toolkit para crear un subflujo vacío para cada manejador de errores. A continuación, puede implementar el manejador de errores añadiendo cualquiera de los nodos de flujo de mensajes estándar que están disponibles en IBM App Connect Enterprise al subflujo.
Si no implementa un manejador de errores, se utilizará el comportamiento de manejo de errores predeterminado. Si no implementa el manejador de errores Catch o el manejador de errores Failure, la excepción se devuelve al cliente con unHTTP 500 Internal Server ErrorCódigo de estado. Si no implementa el manejador de errores Timeout, se devuelve una excepción de tiempo de espera al cliente con unHTTP 504 Gateway TimeoutCódigo de estado.
Procedimiento
Para implementar un manejador de errores en una API REST, realice los pasos siguientes:
- Abra el REST API Description para la API REST para la que desea implementar un manejador de errores.REST API Description se encuentra en la vista Desarrollo de aplicaciones bajo el proyecto de API REST.
- Localice el manejador de errores en REST API Description.Los manejadores de errores se listan en la cabecera Manejo de errores.
Complete uno de los pasos siguientes en función de si ha creado la API REST con un documento Swagger o un documento OpenAPI3.
- Opcional: Si ha creado RESTAPI con un documento Swagger, pulse el enlace de manejador de errores Implementar < tipo_manejador_error> , donde < tipo_manejador_error> es el tipo de manejador de errores.Se crea y abre automáticamente un nuevo subflujo. El enlace del REST API Description cambia a Abrir el manejador de errores < tipo_manejador_error> y, si pulsa el enlace, se vuelve a abrir el subflujo existente.
- Opcional: Si ha creado la API REST con un documento OpenAPI 3.0 , pulse Crear subflujo para crear un subflujo.También puede utilizar el separador Configuración del editor OpenAPI para implementar manejadores de errores para las API REST basadas en OpenAPI 3.0.
Resultados
Qué hacer a continuación
- Utilice la vista REST API Description para implementar operaciones en una API REST, consulte Implementación de una operación en una API REST utilizando el Editor de API REST para documentos Swagger 2 o Implementación de una operación para API REST basada en documentos OpenAPI 3.0.
- Proteja su API REST utilizando HTTPS para cifrar las comunicaciones entre el cliente y el servidor, consulte Protección de una API REST mediante HTTPS.
- Proteja su API REST autenticando a los usuarios con HTTP Basic Authentication, consulte Protección de una API REST mediante la autenticación básica HTTP .
- Si la API REST va a ser utilizada por el código del lado del cliente que se ejecuta en un navegador web, es posible que tenga que configurar Cross-Origin Resource Sharing, consulte Permitir que los navegadores web accedan a una API REST utilizando Cross-Origin Resource Sharing.
- Puede habilitar la validación de JSON para la API REST utilizando los valores de "Validación de mensajes" en el editor de API REST de ACE. Para obtener más información sobre la validación JSON, consulte Validación JSON.
- De forma predeterminada las API REST están configuradas para manejar datos JSON. Si desea manejar datos no JSON, consulte Manejo de datos no JSON en una API REST.