Processamento da API da Groupon com o Altova MapForce
Frequentemente, pensamos em.. projeto de integração de dados como uma tradução de um único ficheiro de dados para um conjunto de dados diferente, mas.. Altova MapForce permite expandir significativamente o conceito de um ficheiro de entrada. Por exemplo, o ficheiro de exemplo "MergeMultipleFiles.mfd" que é instalado com o MapForce ilustra como pode utilizar um nome de ficheiro com caracteres de coringa para combinar vários ficheiros de entrada num único ficheiro de saída.
![]()
A entrada de mapeamento do MapForce não precisa sequer ser um ficheiro físico; pode ser uma URL que retorne dados estruturados de forma previsível, como as APIs de sites populares como o Groupon e muitos outros. Neste artigo, descreveremos como utilizar as ferramentas da Altova para obter, filtrar, analisar e apresentar dados disponíveis através de uma API web, utilizando o Groupon como exemplo. Se quiser experimentar por si, terá primeiro de visitar http://www.groupon.com/pages/api para solicitar a sua chave de cliente da API do Groupon.
O problema: Todas as ofertas são locais
O site da Groupon e as subscrições por e-mail são excelentes para encontrar ofertas na sua área, mas e se estiver à procura de uma oferta para usar nas suas próximas férias, ou para oferecer como presente a amigos ou familiares em todo o país? Poderia, claro, introduzir manualmente cada localização na página da Groupon, mas isso já é coisa do passado. Vamos usar o Altova MissionKit para automatizar o processo. A API da Groupon oferece duas consultas de URL que retornam dados em formatos .json ou .xml: a primeira retorna uma lista de todas as localizações da Groupon (chamadas "divisões"), e a segunda retorna informações sobre as ofertas atuais para uma divisão específica. Se quisermos ver todas as ofertas para mais de uma divisão, precisamos processar várias URLs e agregar os dados num único resultado. Sim, o MapForce consegue fazer isso!
Primeiro, precisamos de um esquema
A documentação da API da Groupon descreve os elementos que serão devolvidos pelas nossas solicitações, mas não fornece um esquema XML. Isso não é um problema, podemos usar o MapForce para gerar um. Basta abrir um novo projeto de mapeamento e escolher "Inserir esquema XML/ficheiro", depois clicar no botão "Mudar para URL". Agora podemos inserir a URL para obter a lista de divisões da Groupon:
![]()
Quando clicamos no botão "Abrir", o MapForce oferece a opção de gerar o esquema
![]()
Quando clicamos em "Sim", abre-se a caixa de diálogo "Ficheiro / Guardar". Guardei o esquema como "divisions.xsd", e o mapeamento com o novo esquema XML inserido fica assim:
![]()
E o diálogo de Propriedades do componente de Esquema XML contém automaticamente a URL da API/divisões como o ficheiro XML de entrada
![]()
Verifique o trabalho
Queremos filtrar os dados das divisões da Groupon para criar uma lista de nomes de identificadores (IDs) a serem utilizados nas pesquisas de ofertas para cada localidade. Mas, antes de avançarmos, talvez seja um bom momento para aplicar a técnica do ficheiro de texto, mencionada no artigo do blogue "Solução rápida para funções complexas", para analisar os valores dos IDs. Quando inserimos o ficheiro de texto e conectamos os elementos de esquema das divisões e dos IDs, o mapeamento fica assim:
![]()
Conectámos o elemento de divisão às linhas do ficheiro de texto para gerar uma nova linha no ficheiro de texto para cada divisão única, de forma que o campo "Field1" em cada linha contenha o identificador. Ao clicar no botão "Output", obtém-se agora o seguinte resultado:
![]()
Tudo o que precisamos fazer é aplicar a função de concatenação função de cadeia de caracteres para criar a lista de URLs de "deals" para todos os IDs de divisão. O próximo passo no mapeamento é o seguinte:
![]()
Ao passar o cursor sobre a constante associada ao valor1 da função "concat", é exibida a sua definição completa:
![]()
Quando clicamos no botão "Saída" para executar a transformação, o ficheiro de saída apresenta agora o seguinte aspeto:
![]()
Para uma análise mais detalhada, podemos abrir o esquema XML gerado no programa XMLSpy e visualizá-lo numa representação gráfica
![]()
Até agora, temos:
- Criou-se um mapeamento no MapForce que consulta a API da Groupon para obter informações sobre todas as divisões
- Extraí os campos de identificação da divisão
- e criei uma lista de URLs para consultas à API, de forma a obter as ofertas em cada divisão
No próximo artigo desta série, vamos processar a lista de consultas de transações como entrada para um novo componente de mapeamento e filtrar o resultado para obter informações relevantes. Descubra por si mesmo como é fácil utilizar o MapForce para converter dados provenientes de uma API web!
Descarregue uma versão de avaliação gratuita de 30 dias do MapForce.
Nota do Editor: A nossa série original sobre a utilização da API da Groupon para mapeamento de dados foi publicada em três partes. Pode consultar as partes clicando nos links abaixo: A primeira parte, "Processamento da API da Groupon com o Altova MapForce", descreve como criar entradas dinâmicas através da recolha de dados de várias URLs. A segunda parte, "Processamento da API da Groupon com o MapForce – Parte 2", explica como filtramos os dados da API e definimos a saída para extrair apenas os detalhes mais relevantes. A terceira parte, "Processamento da API da Groupon – Parte 3", descreve como formatar a saída como um único documento HTML, otimizado para dispositivos de secretária e dispositivos móveis, e analisa formas de automatizar a execução repetida.