Traitement des erreurs REST
En cas d'échec, différents codes de statut HTTP peuvent être renvoyés en fonction de l'échec et de l'emplacement où l'échec s'est produit pendant le traitement. VoiceCheck utilise le framework Apache® CXF pour le traitement des demandes de services Web et ce cadre peut renvoyer des erreurs pendant le traitement (par exemple 406 - Non acceptable ou 415 - Type de média non pris en charge), avant que la logique métier de VoiceCheck ne soit atteinte.
Les erreurs provenant de la logique métier de VoiceCheck ne possèdent qu'un seul des deux codes de statut :
- 400 - Demande incorrecte : le client a enfreint une règle ou une contrainte métier (généralement des données incorrectes). Le fait de renvoyer le message sans en modifier le contenu entraîne la même erreur.
- 500 - Erreur de serveur interne : une erreur de serveur interne s'est produite lors du traitement de la demande. La réitération du message PEUT aboutir à un succès.
De plus, les erreurs provenant de la logique métier de VoiceCheck comprennent un élément XML faultInfo qui contient des informations supplémentaires sur l'erreur qui s'est produite. Les propriétés de l'élément faultInfo sont indiquées ci-dessous.
Traitement des erreurs SOAP
Les erreurs SOAP 1.1 sont renvoyées pour toutes les erreurs. Toutes les erreurs contiennent un code d'erreur et une chaîne d'erreurs comme spécifié dans SOAP 1.1. Deux des principaux codes d'erreur SOAP 1.1, Client et Serveur, sont spécifiés pour la plupart des erreurs. VoiceCheck utilise généralement ces codes de la manière décrite dans la spécification SOAP 1.1.
Ces erreurs peuvent se produire lors de l'authentification si des codes d'erreur spécifiés dans WS-Security (services Web de sécurité). Les API des services Web Java et les implémentations peuvent renvoyer d'autres codes d'erreur.
Bien qu'il ne soit pas possible de lister tous les codes d'erreur susceptibles de se produire, il existe des règles générales qui peuvent permettre un traitement cohérent des erreurs par les clients des services Web :
- Les codes d'erreur autres que ceux du serveur signifient généralement qu'il ne sert à rien de renvoyer automatiquement le message. Ils sont envoyés lorsque le client a fait une mauvaise manipulation avant que la transmission n'atteigne la logique d'application sur le serveur, comme des échecs d'authentification ou des messages mal formés.
- Lorsque le code d'erreur est Serveur, si l'erreur provient de la logique du serveur d'applications, il comprend l'élément de détail d'erreur SOAP 1.1. Le format est spécifié en WSDL, mais contient les informations de la section ci-dessous.
Élément d'information sur l'erreur
Les services Web REST et SOAP comprennent tous deux les mêmes informations d'erreur lorsqu'une erreur provient de la logique du serveur d'applications VoiceCheck.
L'implémentation REST du serveur hôte pour les résultats post-tâche doit utiliser cet élément d'information sur l'erreur afin d'afficher le message d'erreur dans l'interface utilisateur graphique de VoiceCheck. Sinon, l'utilisateur voit un message générique.
errorCode | long | Code numérique représentant l'erreur. Valeurs valides : 3000 = Erreur interne du serveur (la demande peut ou non aboutir lors d'une nouvelle tentative) 3001 = Demande incorrecte (il n'est pas recommandé de réessayer la demande automatisée) |
message | chaîne | Message lisible par l'utilisateur expliquant l'erreur. |