Die Verarbeitung der Groupon-API mit Altova MapForce

Wir denken oft bei einem Projekt zur Datenintegration daran, dass es sich um eine Umwandlung von einer einzelnen Dateneingabedatei in einen anderen Datensatz handelt, aber Altova MapForce ermöglicht es Ihnen, das Konzept einer Eingabedatei erheblich zu erweitern. Beispielsweise veranschaulicht das mit MapForce installierte Beispiel "MergeMultipleFiles.mfd", wie Sie einen Dateinamen mit Wildcard-Zeichen verwenden können, um mehrere Eingabedateien zu einer einzigen Ausgabedatei zusammenzuführen.

Eine MapForce-Zuordnung muss nicht unbedingt eine physische Datei sein – sie kann auch eine URL sein, die strukturierte Daten liefert, wie beispielsweise die APIs für beliebte Webseiten wie Groupon und viele andere. In diesem Blogbeitrag beschreiben wir, wie Sie die Altova-Tools verwenden können, um Daten abzurufen, zu filtern, zu analysieren und darzustellen, die über eine webbasierte API verfügbar sind, wobei wir Groupon als Beispiel verwenden. Wenn Sie dies selbst ausprobieren möchten, müssen Sie zuerst die Seite http://www.groupon.com/pages/api besuchen, um Ihren persönlichen Groupon-API-Client-Schlüssel anzufordern.

Das Problem: Alle Angebote sind regional begrenzt

Die Groupon-Website und die E-Mail-Abonnements sind ideal, um Angebote in Ihrer Umgebung zu finden. Aber was ist, wenn Sie nach einem Angebot für einen bevorstehenden Urlaub suchen oder ein Geschenk für Freunde oder Familie im ganzen Land? Natürlich könnten Sie jeden Standort manuell auf der Groupon-Website eingeben, aber das ist doch etwas altmodisch. Nutzen wir stattdessen das Altova MissionKit, um den Prozess zu automatisieren. Die Groupon-API bietet zwei URL-Abfragen, die Daten in .json- oder .xml-Formaten zurückgeben: die erste gibt eine Liste aller Groupon-Standorte (sogenannte "Divisions") zurück, und die zweite gibt aktuelle Angebotsinformationen für eine bestimmte Division zurück. Wenn wir alle Angebote für mehr als eine Division anzeigen möchten, müssen wir mehrere URLs abfragen und die Daten zu einem einzigen Ergebnis zusammenführen. Ja, MapForce kann das!

Zuerst benötigen wir ein Schema

Die Groupon-API-Dokumentation beschreibt die Elemente, die von unseren Anfragen zurückgegeben werden, enthält aber kein XML-Schema. Das ist kein Problem, wir können MapForce verwenden, um eines zu erstellen. Wir müssen lediglich ein neues Mapping-Design öffnen und "XML-Schema/Datei einfügen" auswählen, dann auf die Schaltfläche "Auf URL umschalten" klicken. Nun können wir die URL eingeben, um die Liste der Groupon-Bereiche abzurufen:

Wenn wir auf die Schaltfläche "Öffnen" klicken, bietet MapForce an, das Schema zu generieren:

Wenn wir auf "Ja" klicken, öffnet sich das Dialogfenster "Datei / Speichern". Ich habe das Schema als "divisions.xsd" gespeichert, und die Zuordnung mit dem neuen XML-Schema sieht wie folgt aus:

Und der Eigenschaften-Dialog für das XML-Schema-Komponente enthält automatisch die API-/Divisions-URL als Eingabe-XML-Datei

Überprüfen Sie die Arbeit

Wir möchten die Daten der Groupon-Bereiche filtern, um eine Liste von ID-Namen zu erstellen, die für Suchanfragen nach Angeboten in jeder Region verwendet werden können. Bevor wir jedoch fortfahren, könnte jetzt ein guter Zeitpunkt sein, um den Trick mit der Textdatei aus dem Blogbeitrag "Schnelle Lösung für komplexe Funktionen" anzuwenden, um die ID-Werte zu überprüfen. Wenn wir die Textdatei einfügen und die Elemente der Bereiche und des ID-Schemas miteinander verknüpfen, sieht die Zuordnung wie folgt aus:

Wir haben das Trennzeichen mit den Zeilen in der Textdatei verknüpft, um für jede eindeutige Trennung eine neue Zeile in der Textdatei zu erstellen, sodass das Feld 1 in jeder Zeile die ID enthält. Durch Klicken auf die Schaltfläche "Ausgabe" wird nun folgendes Ergebnis erzeugt:

Wir müssen lediglich die Funktion `concat string anwenden, um die Liste der URLs für "/deal" für alle Divisions-IDs zu erstellen. Der nächste Schritt in der Zuordnung sieht wie folgt aus:

Wenn Sie den Cursor über die Konstante bewegen, die mit dem Wert "value1" der Funktion "concat" verbunden ist, wird die vollständige Definition dieser Konstante angezeigt:

Wenn wir auf die Schaltfläche "Ausgabe" klicken, um die Zuordnung auszuführen, sieht die Ausgabedatei nun wie folgt aus:

Als weiteren Schritt können wir das generierte XML-Schema in XMLSpy öffnen und es in der grafischen Schema-Ansicht anzeigen

Bisher haben wir:

  • Es wurde eine MapForce-Zuordnung erstellt, die die Groupon-API abfragt, um Daten für alle Bereiche abzurufen
  • die Felder mit den Divisions-IDs wurden extrahiert
  • und erstellte eine Liste von URLs für API-Anfragen, um die Angebote in jeder Abteilung abzurufen

Im nächsten Beitrag dieser Reihe werden wir die Liste der Anfrageparameter als Eingabe für eine neue Mapping-Komponente verwenden und die Ergebnisse filtern, um interessante Informationen zu extrahieren. Entdecken Sie selbst, wie einfach es ist, MapForce einzusetzen, um Daten von einer Web-API zu konvertieren!

Laden Sie eine kostenlose 30-Tage-Testversion von MapForce herunter.

Anmerkung des Herausgebers: Unsere ursprüngliche Serie über die Verarbeitung von Daten aus der Groupon-API wurde in drei Teilen veröffentlicht. Sie können die einzelnen Teile über die folgenden Links einsehen: Teil 1, "Verarbeitung der Groupon-API mit Altova MapForce", beschreibt, wie man dynamische Eingaben erstellt, indem man Daten von mehreren URLs sammelt. Teil Verarbeitung der Groupon-API mit MapForce – Teil 2 beschreibt, wie wir Daten aus der API gefiltert und die Ausgabe definiert haben, um nur die interessantesten Details zu extrahieren. Teil Verarbeitung der Groupon-API – Teil 3 beschreibt, wie die Ausgabe als ein einzelnes HTML-Dokument formatiert wurde, das für Desktop- und mobile Geräte optimiert ist, und gibt einen Überblick über Möglichkeiten zur Automatisierung wiederholter Ausführungen.