---
title: "Procesar la API de 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: Descubra cómo utilizar Altova MapForce para la integración de datos con la API de Groupon, incluyendo la generación de esquemas, la agregación de datos y los métodos de filtrado de resultados.
---
Status: #blog

Tags:  #altova-xmlspy #data-integration #data-mapping #mapforce #missionkit #web-services #xml-schema

Categories: [data-integration](/blog/es/category/data-integration.md) | [json](/blog/es/category/json.md)
# Procesar la API de Groupon con Altova MapForce

A menudo, pensamos en un [proyecto de integración de datos](https://www.altova.com/es/mapforce/data-integration.html) como una conversión de un único archivo de entrada de datos a otro conjunto de datos, pero [Altova MapForce](https://www.altova.com/es/mapforce.html) le permite ampliar considerablemente el concepto de un archivo de entrada. Por ejemplo, el archivo de ejemplo "MergeMultipleFiles.mfd" que se instala con MapForce ilustra cómo puede utilizar un nombre de archivo con caracteres comodín para combinar múltiples archivos de entrada en un único archivo de salida. 

[![Ejemplo de MapForce: Combinación de múltiples archivos](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) 

Una entrada de mapeo en MapForce no necesita ser un archivo físico; puede ser una URL que devuelva datos estructurados de forma predecible, como las APIs de sitios web populares como Groupon y muchos otros. En esta entrada del blog, describiremos cómo utilizar las herramientas de Altova para obtener, filtrar, analizar y presentar los datos disponibles a través de una API web, utilizando Groupon como ejemplo. Si desea seguir los pasos, primero deberá visitar [http://www.groupon.com/pages/api](http://www.groupon.com/pages/api) para solicitar su clave de cliente de la API de Groupon. 

**El problema: Todas las ofertas son locales** 

El sitio web de Groupon y las suscripciones por correo electrónico son excelentes para encontrar ofertas en tu vecindario, pero ¿qué pasa si buscas una oferta para usar en unas próximas vacaciones, o un regalo para amigos o familiares en otra ciudad? Podrías introducir cada ubicación manualmente en la página web de Groupon, pero eso es algo del pasado. Utilicemos [Altova MissionKit](https://www.altova.com/es/missionkit/software-development-tools.html) para automatizar el proceso. La API de Groupon ofrece dos consultas de URL que devuelven datos en formatos .json o .xml: la primera devuelve una lista de todas las localidades de Groupon (llamadas divisiones), y la segunda devuelve información sobre las ofertas actuales para una división específica. Si queremos ver todas las ofertas para más de una división, necesitamos procesar múltiples URL y combinar los datos en un único resultado. ¡Y MapForce puede hacer eso! 

**Primero, necesitamos un esquema** 

La documentación de la API de Groupon describe los elementos que se devolverán en nuestras solicitudes, pero no proporciona un esquema XML. No importa, podemos usar MapForce para generar uno. Solo tenemos que abrir un nuevo diseño de mapeo y elegir "Insertar esquema XML/archivo", luego hacer clic en el botón "Cambiar a URL". Ahora podemos ingresar la URL para obtener la lista de divisiones de Groupon:

[![Insertar un nuevo componente en un mapeo de MapForce mediante una 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) 

Cuando hacemos clic en el botón "Abrir", MapForce ofrece generar el esquema 

[![MapForce ofrece la posibilidad de generar un esquema 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) 

Cuando hacemos clic en "Sí", se abre el cuadro de diálogo "Archivo / Guardar". Guardé el esquema como "divisions.xsd", y la correspondencia con el nuevo esquema XML insertado se ve así: 

[![Se generó un archivo .xsd como un nuevo componente dentro de un diseño de 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) 

Y el cuadro de diálogo de propiedades del componente de esquema XML incluye automáticamente la URL de la API/divisiones como el archivo XML de entrada

[![Propiedades de los componentes para el archivo .xsd generado](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) 

**Verificar el trabajo** 

Queremos filtrar los datos de las divisiones de Groupon para crear una lista de nombres de identificadores que se utilizarán para las consultas de ofertas en cada localidad. Pero antes de avanzar, ahora podría ser un buen momento para aplicar el truco del archivo de texto del artículo del blog "[Solución rápida para funciones complejas](https://www.altova.com/blog/2011/06/quick-solution-for-complicated.html)" para analizar los valores de los identificadores. Cuando insertamos el archivo de texto y conectamos los elementos de esquema de divisiones e identificadores, la correspondencia se ve así: 

[![Diseño de MapForce con archivo de texto para previsualizar el resultado](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) 

Conectamos el elemento de división a las filas del archivo de texto para generar una nueva fila en el archivo de texto por cada división única, de modo que el campo 1 en cada fila contendrá el identificador. Al hacer clic en el botón "Salida", ahora se genera el siguiente resultado:

[![Ventana de resultados de 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) 

Simplemente necesitamos aplicar la función "concat [string](https://www.altova.com/es/mapforce/data-processing-functions.html)" para construir la lista de URLs de "/deal" para todos los identificadores de división. El siguiente paso en el mapeo es el siguiente: 

[![Utilizando la función "concat" de MapForce para construir una cadena de texto](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) 

Al pasar el cursor sobre la constante asociada al valor1 de la función "concat", se muestra su definición completa: 

[![Definición de una constante de cadena en 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) 

Cuando hacemos clic en el botón "Salida" para ejecutar la transformación, el archivo de salida ahora tiene este aspecto: 

[![Ventana de salida de 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) 

Como paso adicional, podemos abrir el esquema XML generado en XMLSpy y visualizarlo en la vista gráfica del esquema 

[![Vista gráfica del esquema generado en formato .xsd, creada 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) 

Hasta ahora, tenemos:

- Se creó una configuración de MapForce que consulta la API de Groupon para obtener información de todas las divisiones
- Se extrajeron los campos de identificación de la división
- y creé una lista de URLs para realizar consultas a la API y obtener las ofertas de cada división

En la siguiente publicación de esta serie, procesaremos la lista de consultas de transacciones como entrada para un nuevo componente de mapeo y filtraremos los resultados para obtener información relevante. **Descubre por ti mismo lo fácil que es utilizar MapForce para convertir datos provenientes de una API web.** 

[Descargue una versión de prueba gratuita de 30 días](https://www.altova.com/es/download/mapforce/data_mapping_enterprise.html) **de MapForce.** 

**Nota del editor:** Nuestra serie original sobre la gestión de datos de la API de Groupon se publicó en tres partes, que puede consultar haciendo clic en los siguientes enlaces: La primera parte, titulada "[Gestión de la API de Groupon con Altova MapForce](https://www.altova.com/blog/2011/08/processing-groupon-api-with-altova.html)", describe cómo crear entradas dinámicas mediante la recopilación de datos de múltiples URLs. La segunda parte, "[Gestión de la API de Groupon con MapForce – Parte 2](https://www.altova.com/blog/2011/08/processing-groupon-api-with-mapforce.html)", explica cómo filtramos los datos de la API y definimos la salida para extraer únicamente los detalles más relevantes. La tercera parte, "[Gestión de la API de Groupon – Parte 3](https://www.altova.com/blog/2011/08/processing-groupon-api-part-3.html)", describe cómo formatear la salida como un único documento HTML optimizado para dispositivos de escritorio y móviles, y analiza diferentes métodos para automatizar la ejecución repetida.
