---
title: "Serviços REST como fontes de dados para aplicações móveis"
date: "2016-01-13"
categories: 
  - "development"
  - "mobile"
  - "software"
tags: 
  - "cross-platform-mobile-development"
  - "gps-apps"
  - "mobile-development"
  - "mobiletogether"
  - "rest-services"
description: Explore como implementar serviços REST em aplicações móveis utilizando o MobileTogether, com foco na obtenção de dados de altitude precisos a partir de coordenadas GPS.
---
Status: #blog

Tags:  #cross-platform-mobile-development #gps-apps #mobile-development #mobiletogether #rest-services

Categories: [development](/blog/pt/category/development.md) | [mobile-development](/blog/pt/category/mobile-development.md) 
# Serviços REST como fontes de dados para aplicações móveis

A plataforma MobileTogether permite aos desenvolvedores preencher aplicações móveis com informações obtidas a partir de fontes externas, através de.. [Serviços web REST e SOAP](https://www.altova.com/pt/mobiletogether/sources.html), e processa os dados recebidos, sejam eles em formato XML, JSON ou HTML. O suporte do MobileTogether para REST e SOAP oferece aos desenvolvedores de aplicações móveis acesso a vastos recursos de dados online, para uma ampla gama de aplicações.

![image01](/blog/images/image01.png)

<!--more-->

A opção "Adicionar Fonte" no MobileTogether Designer permite o acesso a diálogos específicos para fornecer os detalhes necessários para requisições REST, SOAP e HTTP. Neste artigo, descrevemos como implementar uma requisição REST para obter dados de altitude a partir de coordenadas fornecidas em latitude e longitude.

**O desafio:**

Os dados de GPS podem ser tanto úteis como frustrantes. Se uma aplicação móvel utiliza o GPS de forma contínua, o utilizador pode ser inundado de dados a cada poucos segundos, e a bateria do dispositivo esgota rapidamente. Além disso, os sistemas GPS são extremamente precisos para registar coordenadas x/y, mas são imprecisos quando se trata de indicar a altitude. Se quisermos registar as variações de altitude desde a base até o topo de uma colina, por exemplo, precisamos de uma solução melhor.

Com o programa MobileTogether Designer, podemos criar uma aplicação móvel compatível com diferentes plataformas, que permite aos utilizadores recolher dados para locais específicos, conforme necessário. Podemos extrair as coordenadas de cada ponto e obter dados de altitude precisos através do serviço web USGS Point Query, descrito no sítio web da [USGS](http://nationalmap.gov/3DEP/3dep_prodserv.html).

Primeiramente, podemos experimentar o serviço web num navegador, através do seguinte endereço: [http://ned.usgs.gov/epqs](http://ned.usgs.gov/epqs)

![Serviço de Consulta de Pontos da USGS](/blog/images/USGS-site-Capture-B.png)

Simplesmente fornecemos um conjunto de coordenadas, selecionamos as unidades e os tipos de dados de saída, e clicamos em "Obter Altitude". O serviço de consulta de altitude devolve o resultado abaixo:

![Resultado do serviço de consulta de pontos da USGS](/blog/images/USGS-site-result-edit-B.png)

Duas características interessantes deste resultado são a URL gerada na janela de resultados, que podemos usar como modelo para especificar a fonte de dados do serviço REST no MobileTogether, e o conteúdo do resultado, que mostra a estrutura XML. Aqui está a URL completa:

![URL de exemplo completo para o serviço de consulta de pontos da USGS](/blog/images/URL-Capture-2.png)

Para adicionar o serviço REST como fonte de dados para uma aplicação móvel, podemos colar a URL na caixa de diálogo "Pedido de API RESTful do MobileTogether" e substituir os parâmetros pelas coordenadas x e y. Também utilizaremos um parâmetro para especificar as unidades, permitindo que o utilizador escolha entre pés ou metros.

![Diálogo da API RESTful do MobileTogether Designer](/blog/images/Designer-API-dialog-Capture-3-edit.png)

Na nossa aplicação, as coordenadas são lidas por um Grupo de Ações, e as variáveis definidas como dados persistentes são atualizadas com os valores de longitude e latitude.

![MobileTogether: Grupo de ações para obter a localização](/blog/images/Get-Location-Action-Group-Capture.png)

Estes valores são, então, fornecidos como parâmetros para a requisição GET, conforme definido pelas expressões XPath na coluna "Valor" da tabela "Parâmetros". O sistema de ajuda integrado do MobileTogether Designer inclui uma documentação detalhada das opções e configurações dos serviços REST, incluindo o suporte para campos de cabeçalho HTTP e conteúdo multipart HTTP, que são necessários por alguns serviços.

Quando fechamos a caixa de diálogo, uma nova fonte de dados, correspondente à requisição REST, é automaticamente adicionada à janela de fontes da página. Clicar com o botão direito na nova fonte de dados abre um menu de contexto, onde uma das opções é "Importar estrutura a partir de XML". Isto abre uma caixa de diálogo onde pode especificar um ficheiro ou pode colar a URL de exemplo original, com os valores dos parâmetros incorporados, para obter a estrutura diretamente do serviço REST. De qualquer forma, a estrutura das Fontes da Página é atualizada com nós que correspondem ao resultado da consulta:

![Visualização do código-fonte da página no MobileTogether Designer](/blog/images/Designer-Page-Source-Capture.png)

Se preferir trabalhar com dados JSON em vez de XML, basta selecionar "JSON" na janela de pedido da API REST e ajustar a URL para selecionar os dados JSON do serviço web. O menu de contexto oferecerá a opção "Importar estrutura a partir de JSON" e o restante do funcionamento do MobileTogether Designer é o mesmo.

A imagem abaixo mostra a tela principal da aplicação finalizada. No ecrã à esquerda, a aplicação acabou de ser iniciada e está à espera que o utilizador ative o rastreamento GPS, clicando num dos botões de opção. No lado direito, o GPS está ativado e o botão "Atualizar Localização" é exibido. O utilizador clica neste botão para capturar um par de coordenadas, e a aplicação executa a requisição REST para obter a altitude correspondente.

![Duas imagens da aplicação móvel de demonstração do GPS](/blog/images/app-ui-1b.png)

A aplicação desliga então o rastreamento por GPS para reduzir o consumo de energia e atualiza o ecrã com a nova localização:

![Visualização dos dados de uma localização registada pela aplicação de demonstração GPS](/blog/images/app-ui-2b.png)

Os botões "Mostrar Endereço" e "Mostrar Mapa" expandem a visualização, fornecendo mais informações sobre as coordenadas mais recentes. Uma página de "Configurações" permite ao utilizador selecionar preferências e guardar conjuntos de coordenadas em ficheiros GPX. A aplicação também inclui uma página de "Detalhes" que exibe os dados GPS brutos do ponto mais recente registado.

Se desejar experimentar a aplicação por si próprio, [descarregue o MobileTogether Designer](https://www.altova.com/pt/download/mobiletogether.html) – o uso é gratuito – e obtenha uma cópia da aplicação de geolocalização e dos ficheiros associados no GitHub em [https://github.com/altova/MobileTogether-geolocation-example](https://github.com/altova/MobileTogether-geolocation-example). Pode executá-la no simulador integrado no MobileTogether Designer e visualizar a aplicação como ela aparece em dispositivos Android, iOS, Windows Phone e outros. Incluímos até um ficheiro de dados com coordenadas para simular um dispositivo móvel em movimento enquanto a aplicação é executada no Designer.
