---
title: "Gérer les erreurs HTTP lors de l'intégration automatisée des données"
date: "2019-07-29"
categories: 
  - "data-integration"
  - "json"
  - "tools"
tags: 
  - "data-mapping"
  - "flowforce-server"
  - "http-testing"
  - "mapforce"
  - "mapforce-server"
  - "web-services"
description: Cet article examine les stratégies pour gérer les erreurs HTTP dans l'intégration automatisée des données, en utilisant MapForce, afin d'assurer une gestion efficace des réponses et une cartographie performante.
---
Status: #blog

Tags:  #data-mapping #flowforce-server #http-testing #mapforce #mapforce-server #web-services

Categories: [data-integration](/blog/fr/category/data-integration.md) 
# Gérer les erreurs HTTP lors de l'intégration automatisée des données

Les analystes de données et d'autres professionnels ont souvent besoin de générer des données en temps réel grâce à l'exécution automatisée de processus de transformation de données qui sollicitent des services web et enregistrent les résultats. Lors de cette exécution automatisée, il est important de gérer de manière appropriée toute erreur HTTP imprévue, plutôt que d'interrompre la tâche d'intégration.

Dans une publication précédente, nous avons abordé [le traitement conditionnel d'une réponse d'un service web REST](https://www.altova.com/blog/handling-http-errors/) pour gérer les erreurs HTTP, en générant des fichiers de sortie distincts pour une réponse normale et pour une erreur. Examinons maintenant une solution de mappage améliorée pour l'exemple de l'état de l'aéroport, afin de générer un seul fichier de résultat qui contient soit l'état de l'aéroport demandé, soit une description de l'erreur.

![](/blog/images/airport_flip_700x335.jpg)

<!--more-->

Une stratégie pour générer un seul résultat consisterait à considérer chaque fichier de sortie créé par notre mappage MapForce initial comme un composant intermédiaire, puis à les intégrer dans un résultat final qui prend en compte les deux résultats possibles.

Cependant, une solution plus simple consiste à associer directement une réponse normale et un résultat d'erreur à un seul composant de sortie.

Après la publication de notre précédent article, nous avons découvert que le service web de l'administration fédérale de l'aviation (FAA) renvoie une erreur si la requête contient un champ vide pour le code de l'aéroport. Cela génère une erreur HTTP 404. Malheureusement, le résultat du service web en cas d'erreur est fourni au format HTML au lieu de JSON, malgré la spécification indiquée dans l'en-tête de la requête

![Spécifier les paramètres GET des services web dans la configuration de la correspondance des données.](/blog/images/web-service-parameters.png)

Nous pouvons éviter d'analyser une erreur HTML en utilisant directement le code de statut renvoyé dans la réponse :

![Gérer les erreurs HTTP en faisant correspondre le code de statut de la réponse](/blog/images/status-code.png)

Tout d'abord, nous devons ajouter un élément au schéma JSON du composant cible afin de pouvoir y stocker un message en cas d'erreur. Cela peut être facilement réalisé en utilisant XMLSpy [Éditeur graphique Schéma JSON](https://www.altova.com/fr/xmlspy-xml-editor#json_schema):

[![Éditeur de schéma JSON graphique](/blog/images/enhanced-json-schema.png)](enhanced-json-schema.png)

Dans la fenêtre d'aide "Détails", l'option "Occurrence" est définie sur "Facultatif" car cet élément ne sera généré que en cas d'erreur HTTP.

Maintenant, nous pouvons créer un message d'erreur personnalisé en fonction de tout code de statut HTTP supérieur à 200 :

[![Gérez les erreurs HTTP en associant un message d'erreur personnalisé au résultat](/blog/images/error-msg-mapping.png)](error-msg-mapping.png)

La fonction "concat" mentionnée ci-dessus inclut le code de statut et le code de l'aéroport afin de fournir une explication complète de toute erreur.

Voici une vue d'ensemble du nouveau schéma qui retrace le cheminement du code de statut jusqu'au composant de sortie :

[![Gérer les erreurs HTTP en utilisant des chemins alternatifs pour les résultats normaux et les résultats d'erreur](/blog/images/revised-mapping-1030x576.png)](revised-mapping.png)

Nous pouvons modifier le code de l'aéroport, qui se trouve en haut à gauche de la carte, puis cliquer sur le bouton "Sortie" situé en dessous de la fenêtre principale de la carte pour tester différentes valeurs d'entrée. Lorsqu'un code d'aéroport valide est inclus dans la requête GET envoyée au service web, le résultat est le fichier JSON que nous attendons :

![Gérer les erreurs HTTP : affichage d'un résultat normal de la correspondance](/blog/images/normal-result.png)

Nous pouvons générer une erreur HTTP en envoyant une chaîne de caractères vide dans le champ correspondant au code de l'aéroport. Cela génère un fichier de réponse d'erreur au format JSON :

![Gérer les erreurs HTTP en incluant un message dans le résultat](/blog/images/error-result.png)

Veuillez noter que notre système de correspondance conserve des corps de réponse distincts pour les codes de statut HTTP 200-299 et pour les codes 300-599. Cela garantit que seuls les résultats JSON valides sont traités pour la sortie. Les résultats d'erreur reçus au format HTML ne sont pas traités ; ils sont simplement ignorés.

![Gérer les erreurs HTTP – exemple d'un résultat d'erreur fourni par le service web au format HTML](/blog/images/error-message-2.png)

### Automatisez la correspondance des données et gérez les erreurs HTTP

Dans notre précédent article, nous avons décrit un scénario d'automatisation dans lequel nous souhaitons vérifier et enregistrer l'état de 50 aéroports selon un calendrier régulier. Pour ce faire, nous devrons appeler le service web et traiter les résultats pour chaque code d'aéroport individuel.

La structure de l'exemple de mappage initial a déjà été conçue en tenant compte de l'automatisation. MapForce Server est un outil serveur multiplateforme qui [automatise l'exécution des mappages de données conçus dans MapForce](https://www.altova.com/fr/mapforce-server). Le composant situé en haut à gauche du mappage, après la chaîne de caractères constante, est un paramètre d'entrée qui peut être fourni au moment de l'exécution par MapForce Server.

![Composant de paramètre d'entrée pour l'exécution automatisée de la cartographie](/blog/images/automating-input.png)

La chaîne de caractères "PHX" qui apparaît dans la capture d'écran n'est utilisée que pendant l'exécution directe dans MapForce.

FlowForce Server est un logiciel hautement personnalisable [Moteur de flux de travail pour l'automatisation efficace des tâches d'intégration de données à l'échelle de l'entreprise](https://www.altova.com/fr/flowforceserver). Une tâche FlowForce Server peut exécuter la transformation de données en utilisant MapForce Server une fois pour chaque code d'aéroport requis, et répéter cette opération selon un calendrier régulier. Cette tâche automatisée gérera les erreurs HTTP en produisant des fichiers de résultats qui contiennent soit le statut le plus récent, soit une description de l'erreur pour chaque code d'aéroport.

Si vous découvrez MapForce, regardez cette [présentation vidéo](https://youtu.be/a83na6G9FjI) pour une introduction à ses fonctionnalités de conversion et d'intégration de données, qui permettent de passer de n'importe quel format à n'importe quel autre. Vous pouvez essayer MapForce, MapForce Server et FlowForce Server grâce à une [version d'essai gratuite de 30 jours](https://www.altova.com/fr/download).
