Implémentation d'un gestionnaire d'erreurs dans une API REST
Utilisez la vue Description de l'API REST 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 lors du traitement d'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 de capture. Par exemple, si un noeud JavaCompute du flux secondaire d'une opération génère une exception et que cette exception n'est pas intercepte par un noeud TryCatch , cette exception est transmise au gestionnaire d'erreurs Catch.
- Délai d'attente
- Si un flux secondaire d'une opération traite un message et que le flux secondaire ne répond pas au client dans la limite de temps attendue, 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 le client 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: Selon le client, le client peut se retirer sans recevoir de réponse lors de l'appel de l'opération, auquel 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 l'erreur n'est pas traitée par les gestionnaires d'erreurs Catch ou Timeout, un message est acheminé vers le gestionnaire d'erreurs d'échec.
Les gestionnaires d'erreurs dans une API REST sont implémenté en tant que flux secondaire. Vous devez utiliser IBM Integration Toolkit pour créer un flux secondaire vide pour chaque gestionnaire d'erreurs. Vous pouvez ensuite implémenter le gestionnaire d'erreurs en ajoutant l'un des noeuds de flux de messages standard disponibles dans IBM Integration Bus au flux secondaire.
Si vous n'implémrez pas de gestionnaire d'erreurs, le comportement de gestion des erreurs par défaut est utilisé. Si vous n'implémrez pas le gestionnaire d'erreurs Catch 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émrez 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 fichier Description de l'API REST pour l'API REST pour laquelle vous souhaitez implémenter un gestionnaire d'erreurs.Le fichier Description de l'API REST se trouve dans le fichier Vue Développement d'applications sous le projet API REST.
- Recherchez le gestionnaire d'erreurs dans Description de l'API REST.Les gestionnaires d'erreurs sont répertoriés sous la rubrique Gestion des erreurs.
- Cliquez sur le lien du gestionnaire d'erreurs Implémenter le fichier < type_port_erreur > , où < type_port_erreur > est le type de gestionnaire d'erreurs.Un nouveau flux secondaire est automatiquement créé et ouvert. Le lien des Description de l'API REST modifications apportées au gestionnaire d'erreurs Ouvrez le fichier < type_erreur_erreur > et, si vous cliquez sur le lien, le sous-flux existant s'ouvre.
- Implémentez le gestionnaire d'erreurs en ajoutant l'un des noeuds de flux de messages standard disponibles dans IBM Integration Bus au flux secondaire.
Résultats
Etape suivante
- Utilisez la vue Description de l'API REST pour implémenter des opérations dans une API REST, voir Implémentation d'une opération dans une API REST.
- Sécuriser votre API REST à l'aide de HTTPS pour le chiffrement des communications entre le client et le serveur, voir Sécurisation d'une API REST à l'aide de HTTPS.
- Sécuriser votre API REST en authentifiant les utilisateurs avec l'authentification de base HTTP, voir Sécurisation d'une API REST à l'aide de l'authentification de base HTTP.
- Si votre API REST va être utilisée par le code côté client qui s'exécute dans un navigateur Web, vous devrez peut-être configurer Partage des ressources d'origine croisée, voir Permettre aux navigateurs Web d'accéder à une API REST à l'aide du partage de ressources d'origine croisée.
- 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 Gestion des données non JSON dans une API REST.