---
title: "Het verwerken van de Groupon API met Altova MapForce"
date: "2011-08-02"
categories: 
  - "data-integration"
  - "json"
tags: 
  - "altova-xmlspy"
  - "data-integration"
  - "data-mapping"
  - "mapforce"
  - "missionkit"
  - "web-services"
  - "xml-schema"
description: Ontdek hoe u Altova MapForce kunt gebruiken voor data-integratie met de Groupon API, inclusief het genereren van schema's, het samenvoegen van data en methoden voor het filteren van de output.
---
Status: #blog

Tags:  #altova-xmlspy #data-integration #data-mapping #mapforce #missionkit #web-services #xml-schema

Categories: [data-integration](/blog/nl/category/data-integration.md) | [json](/blog/nl/category/json.md)
# Het verwerken van de Groupon API met Altova MapForce

We denken er vaak over na dat een [project voor data-integratie](https://www.altova.com/nl/mapforce/data-integration.html) een vertaling is van één enkel data-invoerbestand naar een andere dataset, maar [Altova MapForce](https://www.altova.com/nl/mapforce.html) stelt u in staat om het concept van een invoerbestand aanzienlijk uit te breiden. Zo illustreert het voorbeeld "MergeMultipleFiles.mfd" dat bij MapForce wordt geïnstalleerd, hoe u een bestandsnaam met wildcard-tekens kunt gebruiken om meerdere invoerbestanden samen te voegen tot één uitvoerbestand. 

[![MapForce: Voorbeeld van het samenvoegen van meerdere bestanden (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) 

Een MapForce-mapping kan niet eens een fysiek bestand zijn; het kan een URL zijn die voorspelbare, gestructureerde gegevens teruggeeft, zoals de API's van populaire websites zoals Groupon en vele andere. In dit blogbericht beschrijven we hoe u Altova-tools kunt gebruiken om gegevens op te halen, te filteren, te analyseren en weer te geven die beschikbaar zijn via een webgebaseerde API, waarbij Groupon als voorbeeld wordt gebruikt. Als u dit zelf wilt uitproberen, moet u eerst [http://www.groupon.com/pages/api](http://www.groupon.com/pages/api) bezoeken om uw persoonlijke Groupon API-client sleutel aan te vragen. 

**Het probleem: Alle aanbiedingen zijn lokaal geldig** 

De Groupon-website en e-mailabonnementen zijn ideaal om aanbiedingen in uw buurt te vinden, maar wat als u op zoek bent naar een aanbieding voor een aankomende vakantie, of als cadeau voor vrienden of familie in een andere regio? U zou natuurlijk elke locatie handmatig kunnen invoeren op de Groupon-website, maar dat is toch alweer een beetje ouderwets. Laten we de [Altova MissionKit](https://www.altova.com/nl/missionkit/software-development-tools.html) gebruiken om dit te automatiseren. De Groupon API biedt twee URL-query's die data retourneren in .json- of .xml-formaten: de eerste retourneert een lijst van alle Groupon-locaties (genaamd divisies), en de tweede retourneert actuele aanbiedingsinformatie voor één specifieke divisie. Als we alle aanbiedingen voor meer dan één divisie willen bekijken, moeten we meerdere URL's aanroepen en de data samenvoegen tot één resultaat. Ja, MapForce kan dat! 

**Eerst hebben we een schema nodig** 

De API-documentatie van Groupon beschrijft de elementen die door onze verzoeken worden geretourneerd, maar bevat geen XML-schema. Dat is geen probleem, we kunnen MapForce gebruiken om er een te genereren. We hoeven alleen maar een nieuw mapping-ontwerp te openen en "XML-schema/bestand invoegen" te kiezen, en vervolgens op de knop "Schakel over naar URL" te klikken. Nu kunnen we de URL invoeren om de lijst met Groupon-onderdelen op te halen:

[![Een nieuw component toevoegen aan een MapForce-mapping via een 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) 

Wanneer we op de knop "Openen" klikken, biedt MapForce aan om het schema te genereren 

[![MapForce biedt de mogelijkheid om een XML-schema te genereren](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) 

Wanneer we op "Ja" klikken, opent het dialoogvenster "Bestand / Opslaan". Ik heb het schema opgeslagen als "divisions.xsd", en de koppeling met het nieuwe XML-schema ziet er als volgt uit: 

[![Een .xsd-bestand is gegenereerd als een nieuw onderdeel in een MapForce-ontwerp](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) 

En het dialoogvenster "Eigenschappen" voor het XML-schema-onderdeel bevat automatisch de API-/divisie-URL als het "Invoer-XML-bestand":

[![Componenteigenschappen voor het gegenereerde .xsd-bestand](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) 

**Controleer het werk** 

We willen de gegevens van de Groupon-divisies filteren om een lijst met ID-namen te maken die we kunnen gebruiken voor zoekopdrachten naar aanbiedingen voor elke locatie. Maar voordat we verder gaan, is dit misschien een goed moment om de truc met het tekstbestand uit het blogartikel "[Snelle oplossing voor complexe functies](https://www.altova.com/blog/2011/06/quick-solution-for-complicated.html)" toe te passen om de ID-waarden te bekijken. Wanneer we het tekstbestand invoegen en de divisies en ID-schema-elementen verbinden, ziet de mapping er als volgt uit: 

[![MapForce-ontwerp met een tekstbestand om de uitvoer te bekijken](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) 

We hebben het scheidingsteken gekoppeld aan de rijen in het tekstbestand, zodat voor elke unieke scheiding een nieuwe rij in het tekstbestand wordt gegenereerd. Hierdoor bevat het veld "Field1" in elke rij de bijbehorende ID. Door nu op de knop "Output" te klikken, wordt het volgende resultaat gegenereerd:

[![MapForce-uitvoeringsvenster](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) 

We hoeven alleen maar de functie `concat [string](https://www.altova.com/nl/mapforce/data-processing-functions.html) toe te passen om de lijst met "/deal"-URL's voor alle divisie-ID's te genereren. De volgende stap in de mapping ziet er als volgt uit: 

[![Het gebruik van de MapForce-functie "concat" om een string samen te stellen](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) 

Door met de cursor over de constante te bewegen die verbonden is met de waarde1 van de functie "concat", wordt de volledige definitie van die constante weergegeven: 

[![Definitie van een stringconstante 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) 

Wanneer we op de knop "Uitvoer" klikken om de mapping uit te voeren, ziet het uitvoerbestand er nu als volgt uit: 

[![MapForce-uitvoeringsvenster](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 aanvulling kunnen we het gegenereerde XML-schema openen in XMLSpy en het in de grafische schemaweergave weergeven: 

[![De grafische weergave van het gegenereerde .xsd-schema in Altova XMLSpy](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) 

Tot nu toe hebben we:

- Een MapForce-mapping is gemaakt die de Groupon API raadpleegt om informatie op te halen voor alle divisies
- de velden met de divisie-ID's zijn geëxtraheerd
- en een lijst met URL's opgebouwd voor API-verzoeken om de aanbiedingen in elke divisie op te halen

In de volgende post in deze serie zullen we de lijst met zoekopdrachten verwerken als invoer voor een nieuwe mappingcomponent en de uitvoer filteren om interessante informatie te verkrijgen. **Ontdek zelf hoe eenvoudig het is om MapForce te gebruiken om gegevens van een web-API om te zetten!** 

[**Download een gratis proefversie van 30 dagen**](https://www.altova.com/nl/download/mapforce/data_mapping_enterprise.html) **van MapForce.** 

**Redactienota:** Onze oorspronkelijke serie over het verwerken van data van de Groupon API bestond uit drie delen. U kunt deze bekijken door op de links hieronder te klikken: Deel 1, "[Het verwerken van de Groupon API met Altova MapForce](https://www.altova.com/blog/2011/08/processing-groupon-api-with-altova.html)", beschrijft hoe u dynamische invoer kunt creëren door data te verzamelen van meerdere URL's. Deel 2, "[Het verwerken van de Groupon API met MapForce – Deel 2](https://www.altova.com/blog/2011/08/processing-groupon-api-with-mapforce.html)", beschrijft hoe we data uit de API hebben gefilterd en de uitvoer hebben gedefinieerd om alleen de meest interessante details te extraheren. Deel 3, "[Het verwerken van de Groupon API – Deel 3](https://www.altova.com/blog/2011/08/processing-groupon-api-part-3.html)", beschrijft hoe we de uitvoer hebben opgemaakt als een enkel HTML-document, geoptimaliseerd voor desktop- en mobiele apparaten, en bespreekt manieren om de herhaalde uitvoering te automatiseren.
