---
title: "Elaborazione dell'API di Groupon con Altova MapForce"
date: "2011-08-02"
categories: 
  - "data-integration"
  - "json"
tags: 
  - "altova-xmlspy"
  - "data-integration"
  - "data-mapping"
  - "mapforce"
  - "missionkit"
  - "web-services"
  - "xml-schema"
description: Scoprite come utilizzare Altova MapForce per l'integrazione dei dati con l'API di Groupon, inclusa la generazione di schemi, l'aggregazione dei dati e i metodi di filtraggio dell'output.
---
Status: #blog

Tags:  #altova-xmlspy #data-integration #data-mapping #mapforce #missionkit #web-services #xml-schema

Categories: [data-integration](/blog/it/category/data-integration.md) | [json](/blog/it/category/json.md)
# Elaborazione dell'API di Groupon con Altova MapForce

Spesso pensiamo a [progetto di integrazione dei dati](https://www.altova.com/it/mapforce/data-integration.html) come una traduzione da un singolo file di dati a un altro set di dati, ma [Altova MapForce](https://www.altova.com/it/mapforce.html) consente di ampliare notevolmente il concetto di file di input. Ad esempio, il file di esempio "MergeMultipleFiles.mfd" installato con MapForce illustra come è possibile utilizzare un nome file con caratteri jolly per unire più file di input in un unico file di output. 

[![Esempio di file MapForce: 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) 

Un input di mappatura MapForce non deve necessariamente essere un file fisico: può essere un URL che restituisce dati strutturati e prevedibili, come le API di siti web popolari come Groupon e molti altri. In questo articolo del blog, descriveremo come utilizzare gli strumenti Altova per recuperare, filtrare, analizzare e presentare i dati disponibili tramite un'API web, utilizzando Groupon come esempio. Se desiderate seguire il processo, dovrete innanzitutto visitare [http://www.groupon.com/pages/api](http://www.groupon.com/pages/api) per richiedere la vostra chiave API personale di Groupon. 

**Il problema: tutte le offerte sono valide solo a livello locale** 

Il sito web di Groupon e le iscrizioni via email sono ottimi strumenti per trovare offerte nella propria zona, ma cosa succede se si è alla ricerca di un'offerta da utilizzare durante una vacanza imminente, oppure per un regalo per amici o familiari che vivono in un'altra regione? Certo, si potrebbe inserire manualmente ogni località nella pagina web di Groupon, ma questo è un approccio antiquato. Utilizziamo [Altova MissionKit](https://www.altova.com/it/missionkit/software-development-tools.html) per automatizzare il processo. L'API di Groupon offre due query tramite URL che restituiscono dati in formato .json o .xml: la prima restituisce un elenco di tutte le località di Groupon (chiamate "divisioni"), e la seconda restituisce informazioni sulle offerte attuali per una specifica divisione. Se vogliamo visualizzare tutte le offerte per più di una divisione, dobbiamo elaborare più URL e aggregare i dati in un unico risultato. Ebbene, MapForce può farlo! 

**Innanzitutto, abbiamo bisogno di uno schema** 

La documentazione dell'API di Groupon descrive gli elementi che verranno restituiti dalle nostre richieste, ma non fornisce uno schema XML. Non è un problema, possiamo utilizzare MapForce per generarlo. Basta aprire un nuovo progetto di mappatura e scegliere "Inserisci schema XML/file", quindi cliccare sul pulsante "Passa a URL". Ora possiamo inserire l'URL per recuperare l'elenco delle divisioni di Groupon:

[![Inserire un nuovo componente in una mappatura MapForce tramite 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) 

Quando si clicca sul pulsante "Apri", MapForce offre la possibilità di generare lo schema 

[![MapForce offre la possibilità di generare uno schema XML](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) 

Quando clicchiamo su "Sì", si apre la finestra di dialogo "File / Salva". Ho salvato lo schema con il nome divisions.xsd, e la mappatura con il nuovo schema XML inserito è la seguente: 

[![Generato un file .xsd come nuovo componente all'interno di un progetto MapForce](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) 

E la finestra di dialogo "Proprietà" per il componente "Schema XML" contiene automaticamente l'URL dell'API/delle divisioni come "File XML di input":

[![Proprietà dei componenti per il file .xsd generato](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) 

**Verificare il lavoro** 

Vogliamo filtrare i dati delle divisioni di Groupon per creare un elenco di nomi di identificativi (ID) da utilizzare per le query sulle offerte per ogni località. Ma prima di procedere ulteriormente, potrebbe essere un buon momento per applicare la tecnica del file di testo descritta nel post del blog "[Soluzione rapida per funzioni complesse](https://www.altova.com/blog/2011/06/quick-solution-for-complicated.html)" per esaminare i valori degli ID. Quando inseriamo il file di testo e colleghiamo gli elementi dello schema delle divisioni e degli ID, la mappatura sarà simile a questa: 

[![Progettazione di un flusso di dati MapForce con un file di testo per visualizzare l'output](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) 

Abbiamo collegato l'elemento "divisione" alle righe del file di testo, in modo da generare una nuova riga nel file di testo per ogni divisione univoca, in cui il campo "Field1" di ogni riga conterrà l'identificativo. Cliccando ora sul pulsante "Output", si ottiene il seguente risultato:

[![Finestra di output di MapForce](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) 

Tutto ciò che dobbiamo fare è applicare la funzione "concat" [per concatenare le stringhe](https://www.altova.com/it/mapforce/data-processing-functions.html) per creare l'elenco degli URL di "/deal" per tutti gli ID delle divisioni. Il passaggio successivo della mappatura è il seguente: 

[![Utilizzare la funzione "concat" di MapForce per costruire una stringa](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) 

Posizionando il cursore sull'elemento costante associato al parametro "value1" della funzione "concat", viene visualizzata la sua definizione completa 

[![Definizione di una costante stringa 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) 

Quando si clicca sul pulsante "Output" per eseguire la mappatura, il file di output ora avrà questo aspetto: 

[![Finestra di output di MapForce](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) 

Come ulteriore verifica, possiamo aprire lo schema XML generato in XMLSpy e visualizzarlo nella vista grafica dello schema 

[![Visualizzazione grafica dello schema .xsd generato, realizzata con 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) 

Finora, abbiamo:

- Ho creato una mappatura MapForce che interroga l'API di Groupon per ottenere informazioni su tutte le divisioni
- ho estratto i campi identificativi delle divisioni
- e ho creato un elenco di URL per effettuare richieste all'API, al fine di ottenere le offerte disponibili in ciascuna divisione

Nel prossimo articolo di questa serie, elaboreremo l'elenco delle richieste di dati come input per un nuovo componente di mappatura e filtreremo i risultati per estrarre informazioni interessanti. **Scoprite voi stessi quanto è facile utilizzare MapForce per convertire i dati provenienti da un'API web!** 

[**Scarica una prova gratuita di 30 giorni**](https://www.altova.com/it/download/mapforce/data_mapping_enterprise.html) **di MapForce.** 

**Nota dell'editore:** La nostra serie originale sulla mappatura dei dati dall'API di Groupon è stata pubblicata in tre parti, che potete consultare cliccando sui seguenti link: La prima parte, intitolata "[Utilizzo di Altova MapForce per l'elaborazione dell'API di Groupon](https://www.altova.com/blog/2011/08/processing-groupon-api-with-altova.html)", descrive come creare input dinamici raccogliendo dati da più URL. La seconda parte, intitolata "[Elaborazione dell'API di Groupon con MapForce – Parte 2](https://www.altova.com/blog/2011/08/processing-groupon-api-with-mapforce.html)", spiega come abbiamo filtrato i dati provenienti dall'API e definito l'output per estrarre solo le informazioni più rilevanti. La terza parte, intitolata "[Elaborazione dell'API di Groupon – Parte 3](https://www.altova.com/blog/2011/08/processing-groupon-api-part-3.html)", descrive come formattare l'output come un singolo documento HTML ottimizzato per dispositivi desktop e mobili, e illustra i modi per automatizzare l'esecuzione ripetuta.
