---
title: "Usługi REST jako źródła danych dla aplikacji mobilnych"
date: "2016-01-13"
categories: 
  - "development"
  - "mobile"
  - "software"
tags: 
  - "cross-platform-mobile-development"
  - "gps-apps"
  - "mobile-development"
  - "mobiletogether"
  - "rest-services"
description: Poznaj sposób implementacji usług REST w aplikacjach mobilnych za pomocą narzędzia MobileTogether, ze szczególnym uwzględnieniem pobierania dokładnych danych wysokościowych na podstawie współrzędnych GPS.
---
Status: #blog

Tags:  #cross-platform-mobile-development #gps-apps #mobile-development #mobiletogether #rest-services

Categories: [development](/blog/pl/category/development.md) | [mobile-development](/blog/pl/category/mobile-development.md) 
# Usługi REST jako źródła danych dla aplikacji mobilnych

MobileTogether umożliwia programistom wypełnianie aplikacji mobilnych informacjami pobieranymi z zewnętrznych źródeł za pomocą [Usługi internetowe REST i SOAP](https://www.altova.com/pl/mobiletogether/sources.html), i przetwarza otrzymane dane, niezależnie od tego, czy są to formaty XML, JSON czy HTML. MobileTogether, obsługując zarówno protokoły REST, jak i SOAP, zapewnia programistom aplikacji mobilnych dostęp do ogromnych zasobów danych online, co umożliwia tworzenie różnorodnych aplikacji.

![Obraz 01](/blog/images/image01.png)

<!--more-->

Opcja "Dodaj źródło" w programie MobileTogether Designer umożliwia dostęp do specjalnych okien dialogowych, które służą do podawania szczegółów dotyczących żądań REST, SOAP i HTTP. W tym wpisie na blogu opisujemy, jak zaimplementować żądanie REST w celu pobrania danych wysokościowych dla współrzędnych podanych jako szerokość i długość geograficzna.

**Wyzwaniem jest:**

Dane GPS mogą być zarówno przydatne, jak i frustrujące. Jeśli aplikacja mobilna nieustannie korzysta z śledzenia GPS, użytkownik może być zasypywany danymi co kilka sekund, a bateria urządzenia szybko się wyczerpuje. Ponadto, systemy GPS są bardzo precyzyjne w zapisywaniu współrzędnych X/Y, ale nie są dokładne w podawaniu wysokości. Jeśli chcemy zarejestrować zmiany wysokości od dołu do góry wzgórza, na przykład, potrzebujemy lepszego rozwiązania.

Korzystając z narzędzia MobileTogether Designer, możemy stworzyć aplikację mobilną działającą na różnych platformach, która pozwoli użytkownikom zbierać dane dla poszczególnych lokalizacji na żądanie. Możemy również pobierać współrzędne każdego punktu oraz uzyskiwać dokładne dane wysokościowe, korzystając z usługi internetowej USGS Point Query, o której mowa na stronie internetowej [USGS](http://nationalmap.gov/3DEP/3dep_prodserv.html).

Po pierwsze, możemy przetestować usługę internetową w przeglądarce, korzystając z adresu URL: [http://ned.usgs.gov/epqs](http://ned.usgs.gov/epqs)

![Usługa zapytania punktowego USGS](/blog/images/USGS-site-Capture-B.png)

Po prostu podajemy zestaw współrzędnych, wybieramy jednostki i typ danych wyjściowych, a następnie klikamy przycisk "Pobierz wysokość". Usługa zapytania o wysokość punktu zwraca wynik, który zostanie wyświetlony poniżej:

![Wynik zapytania do serwisu USGS dotyczącego konkretnego punktu](/blog/images/USGS-site-result-edit-B.png)

Dwa interesujące aspekty tego wyniku to adres URL generowany w oknie wyników, który możemy wykorzystać jako szablon do określenia źródła danych usługi REST w programie MobileTogether, oraz treść wyniku, która prezentuje strukturę XML. Poniżej znajduje się rozszerzony adres URL:

![Pełny adres URL dla usługi USGS Point Query Service](/blog/images/URL-Capture-2.png)

Aby dodać usługę REST jako źródło danych dla aplikacji mobilnej, możemy wkleić adres URL do okna dialogowego "Żądanie API REST w MobileTogether" i zastąpić parametry współrzędnymi x i y. Dodatkowo, użyjemy parametru określającego jednostki, aby umożliwić użytkownikowi wybór między stopami a metrami.

![Okno dialogowe API RESTful dla narzędzia MobileTogether Designer](/blog/images/Designer-API-dialog-Capture-3-edit.png)

W naszej aplikacji, współrzędne są odczytywane przez grupę akcji, a zmienne zdefiniowane jako dane trwałe są aktualizowane wartościami długości geograficznej i szerokości geograficznej.

![MobileTogether: Grupa akcji "Pobierz lokalizację"](/blog/images/Get-Location-Action-Group-Capture.png)

Te wartości są następnie przekazywane jako parametry do żądania GET, zgodnie z wyrażeniami XPath zdefiniowanymi w kolumnie "Wartość" tabeli "Parametry". Zintegrowany system pomocy w programie MobileTogether Designer zawiera obszerną dokumentację opcji i ustawień usług REST, w tym wsparcie dla nagłówków HTTP oraz dla treści HTTP w formacie multipart, które są wymagane przez niektóre usługi.

Po zamknięciu okna dialogowego, nowe źródło danych, odpowiadające żądaniu REST, jest automatycznie dodawane do okna "Źródła strony". Kliknięcie prawym przyciskiem myszy na nowym źródle danych otwiera menu kontekstowe, w którym jedną z opcji jest "Importuj strukturę z XML". Otwiera się okno dialogowe, w którym można albo wskazać plik, albo wkleić oryginalny adres URL z wbudowanymi wartościami parametrów, aby bezpośrednio pobrać strukturę z usługi REST. W każdym przypadku, struktura "Źródeł strony" jest aktualizowana o węzły odpowiadające wynikom zapytania:

![Widok kodu źródłowego strony w MobileTogether Designer](/blog/images/Designer-Page-Source-Capture.png)

Jeśli wolisz pracować z danymi w formacie JSON zamiast XML, po prostu wybierz format JSON w oknie dialogowym żądania API REST i zmień adres URL, aby pobrać dane w formacie JSON z usługi internetowej. Menu kontekstowe zaoferuje opcję „Importuj strukturę z JSON”, a reszta działania w programie MobileTogether Designer działa w ten sam sposób.

Poniższy obrazek przedstawia główny ekran gotowej aplikacji. Na ekranie po lewej stronie aplikacja została właśnie uruchomiona i oczekuje, aż użytkownik włączy śledzenie GPS, klikając jedno z przycisków. Po prawej stronie GPS jest włączony, a wyświetlany jest przycisk "Aktualizuj lokalizację". Użytkownik klika ten przycisk, aby zarejestrować współrzędne, a aplikacja wysyła żądanie REST, aby pobrać odpowiadającą mu wysokość.

![Dwa widoki aplikacji mobilnej demonstracyjnej systemu GPS](/blog/images/app-ui-1b.png)

Następnie aplikacja wyłącza śledzenie za pomocą GPS, aby zmniejszyć zużycie energii, i aktualizuje wyświetlacz, pokazując nową lokalizację

![Wyświetlanie danych o lokalizacji zarejestrowanych przez aplikację demonstracyjną GPS](/blog/images/app-ui-2b.png)

Przyciski oznaczone jako "Pokaż adres" i "Mapa" rozszerzają widok, wyświetlając dodatkowe informacje o najnowszych współrzędnych. Strona "Ustawienia" umożliwia użytkownikowi wybór preferencji oraz zapisywanie zestawów współrzędnych w plikach GPX. Aplikacja zawiera również stronę "Szczegóły", która wyświetla surowe dane GPS dla ostatniego zarejestrowanego punktu.

Jeśli chcieliby Państwo samodzielnie przetestować aplikację, [pobierzcie program MobileTogether Designer](https://www.altova.com/pl/download/mobiletogether.html) – jego używanie jest bezpłatne – i pobierzcie kopię aplikacji do geolokalizacji oraz powiązane pliki z GitHub pod adresem [https://github.com/altova/MobileTogether-geolocation-example](https://github.com/altova/MobileTogether-geolocation-example). Możecie uruchomić ją w emulatorze wbudowanym w program MobileTogether Designer i zobaczyć, jak aplikacja wygląda na urządzeniach z systemami Android, iOS, Windows Phone i innych. Dodatkowo, dołączyliśmy plik z danymi zawierającymi współrzędne, aby zasymulować ruch urządzenia mobilnego podczas działania aplikacji w programie Designer.
