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, 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.

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.

Po pierwsze, możemy przetestować usługę internetową w przeglądarce, korzystając z adresu URL: http://ned.usgs.gov/epqs

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:

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:

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.

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.

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:

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ść.

Następnie aplikacja wyłącza śledzenie za pomocą GPS, aby zmniejszyć zużycie energii, i aktualizuje wyświetlacz, pokazując nową lokalizację

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 – 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. 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.