Utilisation de l'API Groupon avec Altova MapForce

Nous avons souvent l'image d'un projet d'intégration de données comme une simple conversion d'un fichier de données unique vers un autre ensemble de données, mais Altova MapForce vous permet d'élargir considérablement le concept de fichier d'entrée. Par exemple, l'exemple MergeMultipleFiles.mfd, fourni avec MapForce, illustre comment vous pouvez utiliser un nom de fichier contenant des caractères génériques pour fusionner plusieurs fichiers d'entrée en un seul fichier de sortie.

Une source de données pour MapForce n'a pas besoin d'être un fichier physique ; elle peut être une URL qui renvoie des données structurées prévisibles, comme les API de sites web populaires tels que Groupon, et bien d'autres. Dans cet article de blog, nous allons décrire comment utiliser les outils Altova pour récupérer, filtrer, analyser et présenter les données disponibles via une API web, en utilisant Groupon comme exemple. Si vous souhaitez suivre les instructions, vous devrez d'abord vous rendre sur http://www.groupon.com/pages/api pour demander votre clé d'accès personnelle à l'API Groupon.

Le problème : toutes les transactions sont locales

Le site web de Groupon et les abonnements par e-mail sont parfaits pour trouver des offres dans votre quartier, mais que faire si vous recherchez une offre à utiliser lors de vos prochaines vacances, ou un cadeau pour des amis ou de la famille vivant dans une autre région ? Bien sûr, vous pourriez saisir manuellement chaque emplacement sur la page web de Groupon, mais c'est une méthode dépassée. Utilisons Altova MissionKit pour automatiser le processus. L'API de Groupon propose deux requêtes URL qui renvoient des données au format .json ou .xml : la première renvoie une liste de toutes les localités de Groupon (appelées divisions), et la seconde renvoie les informations sur les offres en cours pour une division spécifique. Si nous voulons afficher toutes les offres pour plusieurs divisions, nous devons traiter plusieurs URL et agréger les données en un seul résultat. Et oui, MapForce peut le faire !

Tout d'abord, nous avons besoin d'un schéma

La documentation de l'API Groupon décrit les éléments qui seront renvoyés par nos requêtes, mais ne fournit pas de schéma XML. Ce n'est pas grave, nous pouvons utiliser MapForce pour en générer un. Il suffit d'ouvrir une nouvelle conception de mappage et de choisir "Insérer un schéma XML/fichier", puis de cliquer sur le bouton "Passer à l'URL". Nous pouvons maintenant saisir l'URL pour récupérer la liste des divisions Groupon :

Lorsque nous cliquons sur le bouton "Ouvrir", MapForce propose de générer le schéma

Lorsque nous cliquons sur "Oui", la boîte de dialogue "Fichier / Enregistrer" s'ouvre. J'ai enregistré le schéma sous le nom divisions.xsd, et la correspondance avec le nouveau schéma XML inséré ressemble à ceci :

Et la boîte de dialogue des propriétés du composant de schéma XML contient automatiquement l'URL de l'API/des divisions dans le champ "Fichier XML d'entrée" :

Vérifiez le travail

Nous souhaitons filtrer les données des divisions de Groupon afin de créer une liste de noms d'identifiants à utiliser pour les requêtes de promotions pour chaque localité. Mais avant de continuer, il serait peut-être judicieux d'appliquer la technique du fichier texte mentionnée dans l'article de blog "Solution rapide pour les fonctions complexes" afin d'examiner les valeurs des identifiants. Lorsque nous insérons le fichier texte et que nous connectons les éléments des schémas "divisions" et "identifiants", l'association se présente comme suit :

Nous avons connecté l'élément de division aux lignes du fichier texte afin de générer une nouvelle ligne dans le fichier texte pour chaque division unique, de sorte que le champ 1 de chaque ligne contiendra l'identifiant. En cliquant maintenant sur le bouton "Sortie", vous obtenez le résultat suivant :

Il suffit d'appliquer la fonction `concat string pour créer la liste des URL de type "/deal" pour tous les identifiants de division. L'étape suivante de la correspondance est la suivante :

En déplaçant le curseur sur la constante liée à la valeur1 de la fonction concaténation, sa définition complète s'affiche

Lorsque nous cliquons sur le bouton "Sortie" pour exécuter la transformation, le fichier de sortie ressemble maintenant à ceci :

Pour une analyse plus approfondie, nous pouvons ouvrir le schéma XML généré dans XMLSpy et l'afficher sous forme graphique

Jusqu'à présent, nous avons :

  • J'ai créé une transformation MapForce qui interroge l'API de Groupon pour obtenir des données concernant toutes les divisions
  • J'ai extrait les champs d'identifiant de division
  • et j'ai créé une liste d'URL pour les requêtes API afin d'obtenir les offres proposées dans chaque division

Dans le prochain article de cette série, nous allons traiter la liste des requêtes de données comme entrée pour un nouveau composant de mappage, et filtrer les résultats pour extraire des informations intéressantes. Découvrez par vous-même à quel point il est facile d'utiliser MapForce pour convertir des données provenant d'une API Web !

Téléchargez une version d'essai gratuite de 30 jours de MapForce.

Note de la rédaction : Notre série originale sur la gestion des données provenant de l'API Groupon s'est déroulée en trois parties, que vous pouvez consulter en cliquant sur les liens suivants : La première partie, intitulée Utilisation de Altova MapForce pour traiter l'API Groupon, explique comment créer des entrées dynamiques en collectant des données à partir de plusieurs URL. La deuxième partie, intitulée Utilisation de MapForce pour traiter l'API Groupon – Partie 2, décrit comment nous avons filtré les données de l'API et défini la sortie afin d'extraire uniquement les informations les plus pertinentes. La troisième partie, intitulée Traitement de l'API Groupon – Partie 3, explique comment formater la sortie sous forme d'un seul document HTML optimisé pour les appareils de bureau et mobiles, et présente des méthodes pour automatiser les exécutions répétées.