Implémentation d'un gestionnaire d'erreurs dans une API REST
Utilisez la vue REST API Description pour implémenter des gestionnaires d'erreurs dans une API REST.
Avant de commencer
A propos de cette tâche
- Intercepter
- Si une exception est émise lorsque vous traitez une demande dans un flux secondaire pour une opération et que cette exception n'est pas traitée par ce flux secondaire, un message est acheminé vers le gestionnaire d'erreurs d'interception. Par exemple, si un noeud JavaCompute dans le flux secondaire d'une opération émet une exception et que cette dernière n'est pas interceptée par un noeud TryCatch , cette exception est transmise au gestionnaire d'erreurs d'interception.
- Délai d'attente
- Si un flux secondaire d'une opération traite un message et que ce flux secondaire ne répond pas au client dans le délai prévu, un message est acheminé vers le gestionnaire d'erreurs de délai d'attente. Le gestionnaire d'erreurs de délai d'attente peut ensuite être utilisé pour transmettre une réponse au client afin d'informer ce dernier que l'opération a expiré. Si cette situation se produit, le flux secondaire d'une opération continue de traiter le message. Le traitement de ce message n'est pas annulé. Toutefois, une réponse au client ne peut pas être envoyée.Remarque: En fonction du client, le client peut arriver à un délai d'attente sans recevoir de réponse de la part de l'appel de l'opération. Dans ce cas, toute réponse envoyée n'est pas reçue.
- Echec
- Si une erreur se produit alors que la demande du client est en cours de traitement et que cette erreur n'est pas traitée par les gestionnaires d'erreurs d'interception ou de délai d'attente, un message est acheminé vers le gestionnaire d'erreurs d'échec.
Les gestionnaires d'erreurs dans une API REST sont implémentés en tant que flux secondaire. Vous devez utiliser la boîte à outils « IBM App Connect Enterprise » pour créer un sous-flux vide pour chaque gestionnaire d'erreurs. Vous pouvez ensuite implémenter le gestionnaire d'erreurs en ajoutant au sous-flux l'un des nœuds de flux de messages standard disponibles dans IBM App Connect Enterprise.
Si vous n'implémentez pas de gestionnaire d'erreurs, le comportement de traitement d'erreurs par défaut est utilisé. Si vous n'implémentez pas le gestionnaire d'erreurs d'interception ou le gestionnaire d'erreurs d'échec, l'exception est renvoyée au client avec unHTTP 500 Internal Server Errorcode d'état. Si vous n'implémentez pas le gestionnaire d'erreurs de délai d'attente, une exception de délai d'attente est renvoyée au client avec unHTTP 504 Gateway Timeoutcode d'état.
Procédure
Pour implémenter un gestionnaire d'erreurs dans une API REST, procédez comme suit:
- Ouvrez le REST API Description de l'API REST pour laquelle vous souhaitez implémenter un gestionnaire d'erreurs.REST API Description se trouve dans la vue Développement d'application sous le projet d'API REST.
- Recherchez le gestionnaire d'erreurs dans le REST API Description.Les gestionnaires d'erreurs sont répertoriés sous l'en-tête Gestion des erreurs.
Effectuez l'une des étapes suivantes selon que vous avez créé l'API RESTAPI avec un document Swagger ou un document OpenAPI3 .
- Facultatif: Si vous avez créé l'API RESTAPI avec un document Swagger, cliquez sur le lien du gestionnaire d'erreurs Implémenter le < error_handler_type> , où < error_handler_type> correspond au type du gestionnaire d'erreurs.Un nouveau flux secondaire est automatiquement créé et ouvert. Le lien sur le REST API Description devient Ouvrez le gestionnaire d'erreurs < error_handler_type> et si vous cliquez sur le lien, le flux secondaire existant s'ouvre de nouveau.
- Facultatif: Si vous avez créé l'API REST avec un document OpenAPI 3.0 , cliquez sur Créer un flux secondaire pour créer un flux secondaire.Vous pouvez également utiliser l'onglet OpenAPI Editor Configuration pour implémenter des gestionnaires d'erreurs pour les API REST basées sur OpenAPI 3.0.
Résultats
Etape suivante
- Utilisez la vue REST API Description pour implémenter des opérations dans une API REST. Voir Implémentation d'une opération dans une API REST à l'aide de l'éditeur d'API REST pour les documents Swagger 2 ou Implémentation d'une opération pour les API REST basées sur des documents OpenAPI 3.0.
- Sécurisez votre API REST en utilisant HTTPS pour crypter les communications entre le client et le serveur, voir Sécuriser une API REST en utilisant HTTPS.
- Sécurisez votre API REST en authentifiant les utilisateurs avec HTTP Basic Authentication, voir Sécuriser une API REST en utilisant HTTP Basic Authentication.
- Si votre API REST doit être utilisée par le code côté client qui s'exécute dans un navigateur Web, vous devrez peut-être configurer le partage de ressources d'origine croisée. Voir Autorisation des navigateurs Web à accéder à une API REST à l'aide du partage de ressources d'origine croisée.
- Vous pouvez activer la validation JSON pour votre API REST à l'aide des paramètres "Validation de message" dans l'éditeur d'API REST d'ACE. Pour plus d'informations sur la validation JSON, voir Validation JSON.
- Les API REST sont configurées par défaut pour gérer les données JSON. Si vous souhaitez gérer des données non JSON, voir Traitement de données non JSON dans une API REST.