---
title: "Die Verarbeitung der Groupon-API mit Altova MapForce"
date: "2011-08-02"
categories: 
  - "data-integration"
  - "json"
tags: 
  - "altova-xmlspy"
  - "data-integration"
  - "data-mapping"
  - "mapforce"
  - "missionkit"
  - "web-services"
  - "xml-schema"
description: Erfahren Sie, wie Sie Altova MapForce zur Datenintegration mit der Groupon-API einsetzen können, einschließlich der Erstellung von Schemata, der Zusammenführung von Daten und der Filterung von Ausgaben.
---
Status: #blog

Tags:  #altova-xmlspy #data-integration #data-mapping #mapforce #missionkit #web-services #xml-schema

Categories: [data-integration](/blog/de/category/data-integration.md) | [json](/blog/de/category/json.md)
# Die Verarbeitung der Groupon-API mit Altova MapForce

Wir denken oft bei einem [Projekt zur Datenintegration](https://www.altova.com/de/mapforce/data-integration.html) daran, dass es sich um eine Umwandlung von einer einzelnen Dateneingabedatei in einen anderen Datensatz handelt, aber [Altova MapForce](https://www.altova.com/de/mapforce.html) 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. 

[![MapForce-Beispiel: Zusammenführen mehrerer Dateien (MergeMultipleFiles.mfd)](https://lh5.ggpht.com/-RBpPd9xjMSc/TjF168Ec0gI/AAAAAAAAAcE/bV5CyMKsPD4/Capture1a_thumb%25255B2%25255D.png?imgmax=800 "MapForce MergeMultipleFiles.mfd example")](http://lh4.ggpht.com/-R8gdQ1Q38u8/TjF16hMIxzI/AAAAAAAAAcA/GsqlZnUf5EM/s1600-h/Capture1a%25255B4%25255D.png) 

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](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](https://www.altova.com/de/missionkit/software-development-tools.html), 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:

[![Das Einfügen einer neuen Komponente in eine MapForce-Zuordnung über eine URL](https://lh3.ggpht.com/-qM2IPop_c30/TjF17brkVWI/AAAAAAAAAcM/jUa4qGeshyg/Capture5a_thumb%25255B3%25255D.png?imgmax=800 "Inserting a new component into a MapForce mapping by URL")](http://lh3.ggpht.com/-0BjDz4wIZH4/TjF17MmRwSI/AAAAAAAAAcI/LlPHWGndfxA/s1600-h/Capture5a%25255B7%25255D.png) 

Wenn wir auf die Schaltfläche "Öffnen" klicken, bietet MapForce an, das Schema zu generieren: 

[![MapForce bietet die Möglichkeit, ein XML-Schema zu erstellen](https://lh3.ggpht.com/-PiqLocWZDDA/TjF18LUtzxI/AAAAAAAAAcU/QIKrx4ewM70/Capture6a_thumb%25255B2%25255D.png?imgmax=800 "MapForce offers to generate an XML Schema")](http://lh5.ggpht.com/-vCth55bCKOo/TjF172VAMUI/AAAAAAAAAcQ/dncdbJ3mvtA/s1600-h/Capture6a%25255B4%25255D.png) 

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: 

[![Eine .xsd-Datei wurde als neues Element in einem MapForce-Design erstellt](https://lh4.ggpht.com/-7puBZWoRdJc/TjF18jRYtJI/AAAAAAAAAcc/9iP01YJ3S5o/Capture7a_thumb%25255B2%25255D.png?imgmax=800 "Generated .xsd as a new component in a MapForce design")](http://lh3.ggpht.com/-0OJFlVtA3TY/TjF18dEUNzI/AAAAAAAAAcY/QbYs66oS4ao/s1600-h/Capture7a%25255B4%25255D.png) 

Und der Eigenschaften-Dialog für das XML-Schema-Komponente enthält automatisch die API-/Divisions-URL als Eingabe-XML-Datei

[![Komponenteneigenschaften für die generierte .xsd-Datei](https://lh4.ggpht.com/-DxR6I7S_M0Y/TjF19AYCulI/AAAAAAAAAck/oEyriBBPFLw/Capture8a_thumb%25255B2%25255D.png?imgmax=800 "Component properties for the generated .xsd")](http://lh3.ggpht.com/-j78a9iqLhNA/TjF185FWCYI/AAAAAAAAAcg/kpQVQRFdQnQ/s1600-h/Capture8a%25255B4%25255D.png) 

**Ü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](https://www.altova.com/blog/2011/06/quick-solution-for-complicated.html)" 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: 

[![MapForce-Design mit Textdatei zur Vorschau der Ergebnisse](https://lh3.ggpht.com/-Mp6B8HzA76s/TjF19vA3IYI/AAAAAAAAAcs/tZ3QnQUmKHM/Capture9a_thumb.png?imgmax=800 "MapForce design with text file to preview output")](http://lh4.ggpht.com/-yq4FRkmg2pc/TjF19YEVF4I/AAAAAAAAAco/klUCUiUmSZA/s1600-h/Capture9a%25255B2%25255D.png) 

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:

[![MapForce-Ausgabefenster](https://lh4.ggpht.com/-7FD3rcouxog/TjF1-O22nvI/AAAAAAAAAc0/s6XfT-yf6mM/Capture10a_thumb.png?imgmax=800 "MapForce Output window")](http://lh5.ggpht.com/-isYCN1hj10Q/TjF198GgHgI/AAAAAAAAAcw/AyfvxcATibY/s1600-h/Capture10a%25255B2%25255D.png) 

Wir müssen lediglich die Funktion `concat [string](https://www.altova.com/de/mapforce/data-processing-functions.html) 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: 

[![Die MapForce-Funktion "concat" verwenden, um eine Zeichenkette zu erstellen](https://lh4.ggpht.com/-SBE9mgc9AfI/TjF1-rNY8WI/AAAAAAAAAc8/EEpWrWfj0gk/Capture11a_thumb.png?imgmax=800 "Using the MapForce concat function to build a string")](http://lh3.ggpht.com/-qClnz7ZHjw4/TjF1-XbA3MI/AAAAAAAAAc4/AJ-gV2dnmbY/s1600-h/Capture11a%25255B2%25255D.png) 

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: 

[![Definition einer Zeichenkettenkonstanten in MapForce](https://lh3.ggpht.com/-t1SNI0Ds6ns/TjF1_fP4ABI/AAAAAAAAAdE/P9JmMG1qND4/clip_image010_thumb%25255B2%25255D.png?imgmax=800 "Definition of a MapForce string constant")](http://lh3.ggpht.com/-n6kAy7GZ470/TjF1-0j-6bI/AAAAAAAAAdA/RPmD7EcKCH0/s1600-h/clip_image010%25255B5%25255D.png) 

Wenn wir auf die Schaltfläche "Ausgabe" klicken, um die Zuordnung auszuführen, sieht die Ausgabedatei nun wie folgt aus: 

[![MapForce-Ausgabefenster](https://lh4.ggpht.com/-30F5fcIIBos/TjF2AKMGFmI/AAAAAAAAAdM/nR4W4krpL0g/Capture13a_thumb_thumb.png?imgmax=800 "MapForce Ouput window")](http://lh4.ggpht.com/-WMDb-lUe9C4/TjF1_mnQbEI/AAAAAAAAAdI/8uCForSSDxo/s1600-h/Capture13a_thumb%25255B2%25255D.png) 

Als weiteren Schritt können wir das generierte XML-Schema in XMLSpy öffnen und es in der grafischen Schema-Ansicht anzeigen 

[![Die grafische Schemaansicht von Altova XMLSpy für die generierte .xsd-Datei](https://lh5.ggpht.com/-Q2yiYR8WFic/TjF2A8H0sKI/AAAAAAAAAdU/PhSlddLXLrk/Capture4a_thumb_thumb.png?imgmax=800 "Altova XMLSpy graphical schema view of the generated .xsd")](http://lh4.ggpht.com/-En89-pLUYN0/TjF2AYoZNhI/AAAAAAAAAdQ/yleZP_KLz88/s1600-h/Capture4a_thumb%25255B2%25255D.png) 

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**](https://www.altova.com/de/download/mapforce/data_mapping_enterprise.html) **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](https://www.altova.com/blog/2011/08/processing-groupon-api-with-altova.html)", beschreibt, wie man dynamische Eingaben erstellt, indem man Daten von mehreren URLs sammelt. Teil [Verarbeitung der Groupon-API mit MapForce – Teil 2](https://www.altova.com/blog/2011/08/processing-groupon-api-with-mapforce.html) 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](https://www.altova.com/blog/2011/08/processing-groupon-api-part-3.html) 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.
