Serviços Web REST para mapeamento de dados
A versão 2016, release 2, do MapForce inclui funcionalidades expandidas para.. Mapeamento de dados de serviços web, Oferecendo um suporte robusto para serviços web REST. O MapForce aceita XML ou JSON como resposta do serviço web, permite a definição de parâmetros e suporta cabeçalhos HTTP personalizados. Os utilizadores podem definir a interface do serviço web manualmente ou importando configurações a partir de um ficheiro WADL ou de uma URL. A definição manual das configurações do serviço web REST permite aos desenvolvedores criar configurações com base numa URL de modelo. Este é um passo conveniente quando os desenvolvedores testam e ajustam chamadas REST num navegador, uma vez que a URL pode ser copiada do navegador para se tornar o modelo.

Já mencionámos anteriormente que as coordenadas captadas pelos sistemas GPS são precisas, mas os dados de altitude são notoriamente imprecisos. A USGS (Serviço Geológico dos Estados Unidos) disponibiliza um serviço web REST que aceita consultas com longitude e latitude e fornece dados de altitude precisos, quer em formato XML, quer em JSON. Podemos utilizar este serviço web numa ferramenta de mapeamento de dados MapForce para atualizar os dados GPS de um dispositivo Garmin e, ao mesmo tempo, converter o formato dos dados de XML para JSON.
Começaremos por testar o serviço web numa janela do navegador. O URL apresentado abaixo abre um formulário de entrada para gerar uma consulta de exemplo:

Quando clicamos no botão "Obter Altitude", o formulário gera uma consulta REST GET completa, envia-a e exibe o resultado abaixo. Podemos usar este resultado para modelar a resposta que receberemos ao mapear os nossos dados.

Vamos adicionar o serviço web à nossa estrutura, clicando no botão "Inserir Função de Serviço Web" na barra de ferramentas do MapForce. Isto abre a caixa de diálogo "Configurações da Chamada do Serviço Web", onde podemos fornecer a URL do serviço da USGS.

Em seguida, precisamos definir os parâmetros da requisição e o corpo da resposta, o que irá criar os elementos necessários para o mapeamento, como se pode ver abaixo, na parte seguinte da caixa de diálogo "Configurações da Chamada".

Gerámos convenientemente um esquema JSON no XMLSpy para definir a resposta, com base no ficheiro de exemplo JSON guardado a partir da janela do navegador. A seguir, apresenta-se a visualização do esquema no XMLSpy da resposta convertida:

O formulário de entrada do serviço de elevação da USGS forneceu-nos todas as informações necessárias para definir os parâmetros de entrada, para que possamos adicioná-los à próxima secção da caixa de diálogo de configurações de chamada:

As unidades e os valores de saída para cada pedido não se alteram durante a execução, e poderíamos ter especificado valores fixos. Em vez disso, forneceremos esses valores no mapeamento como constantes. Quaisquer configurações de segurança necessárias também serão configuradas na caixa de diálogo "Configurações da Chamada". Quando clicarmos em "OK" para fechar a caixa de diálogo, a função do serviço web será adicionada ao mapeamento.

Cada ponto de trajetória no ficheiro GPX de origem fornecerá um conjunto de coordenadas. Durante a execução do mapeamento, uma requisição GET para um serviço web será enviada à USGS sempre que um ponto de trajetória for processado, e a resposta fornecerá dados de altitude de substituição.
Agora, tudo o que precisamos fazer é conectar os elementos da requisição e da resposta aos componentes de entrada e saída, como ilustrado abaixo. As constantes para as unidades e o tipo de saída estão visíveis no canto superior esquerdo, e o valor da altitude é arredondado para duas casas decimais antes de ser inserido na saída.

Note que a saída é um ficheiro JSON. O componente de entrada não é mostrado nesta visão parcial do mapeamento, mas é um ficheiro GPX padrão em formato XML. As linhas de conexão do mapeamento de dados que entram do lado esquerdo, que passam por trás da função do Serviço Web na ilustração e que se conectam ao componente de saída, representam todos os valores que serão copiados sem alteração do ficheiro XML de entrada para os elementos JSON correspondentes.
Quando clicamos no botão "Saída do MapForce", o mapeamento é executado e um ficheiro JSON é gerado, como se pode ver na visualização parcial apresentada aqui:

Num ambiente de produção, poderíamos guardar o mapeamento como um ficheiro de execução do MapForce, para que o MapForce Server o processe automaticamente, seja a partir da linha de comandos ou sob o controlo do FlowForce Server.
Altova MapForce é uma ferramenta gráfica premiada para mapeamento, conversão e integração de dados, que permite a transferência de dados entre qualquer combinação de XML, bases de dados, EDI, XBRL, ficheiros simples, Excel, JSON e/ou serviços web. Descarregue uma versão de avaliação gratuita e totalmente funcional e experimente por si mesmo!