Procesar la API de Groupon con Altova MapForce
A menudo, pensamos en un proyecto de integración de datos como una conversión de un único archivo de entrada de datos a otro conjunto de datos, pero Altova MapForce 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.
![]()
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 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 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:
![]()
Cuando hacemos clic en el botón "Abrir", MapForce ofrece generar el esquema
![]()
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í:
![]()
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
![]()
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" 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í:
![]()
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:
![]()
Simplemente necesitamos aplicar la función "concat string" para construir la lista de URLs de "/deal" para todos los identificadores de división. El siguiente paso en el mapeo es el siguiente:
![]()
Al pasar el cursor sobre la constante asociada al valor1 de la función "concat", se muestra su definición completa:
![]()
Cuando hacemos clic en el botón "Salida" para ejecutar la transformación, el archivo de salida ahora tiene este aspecto:
![]()
Como paso adicional, podemos abrir el esquema XML generado en XMLSpy y visualizarlo en la vista gráfica del esquema
![]()
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 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", 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", 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", 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.