---
title: "Services REST comme sources de données pour les applications mobiles"
date: "2016-01-13"
categories: 
  - "development"
  - "mobile"
  - "software"
tags: 
  - "cross-platform-mobile-development"
  - "gps-apps"
  - "mobile-development"
  - "mobiletogether"
  - "rest-services"
description: Découvrez comment implémenter des services REST dans des applications mobiles en utilisant MobileTogether, en mettant l'accent sur la récupération de données d'altitude précises à partir des coordonnées GPS.
---
Status: #blog

Tags:  #cross-platform-mobile-development #gps-apps #mobile-development #mobiletogether #rest-services

Categories: [development](/blog/fr/category/development.md) | [mobile-development](/blog/fr/category/mobile-development.md) 
# Services REST comme sources de données pour les applications mobiles

MobileTogether permet aux développeurs d'intégrer des informations provenant de sources externes dans leurs applications mobiles, grâce à.. [Services web REST et SOAP](https://www.altova.com/fr/mobiletogether/sources.html), et traite les données reçues, qu'elles soient au format XML, JSON ou HTML. La compatibilité de MobileTogether avec les protocoles REST et SOAP offre aux développeurs d'applications mobiles un accès à de vastes ressources de données en ligne pour une grande variété d'applications.

![image01](/blog/images/image01.png)

<!--more-->

L'option "Ajouter une source" dans l'outil MobileTogether Designer permet d'accéder à des fenêtres de dialogue spécifiques pour fournir les informations nécessaires aux requêtes REST, SOAP et HTTP. Dans cet article de blog, nous expliquons comment implémenter une requête REST pour récupérer des données d'altitude à partir de coordonnées fournies sous forme de latitude et de longitude.

**Le défi :**

Les données GPS peuvent être à la fois pratiques et frustrantes. Si une application mobile utilise le GPS en permanence, l'utilisateur peut être submergé de données toutes les quelques secondes, et la batterie de l'appareil se décharge rapidement. De plus, les systèmes GPS sont extrêmement précis pour enregistrer les coordonnées x/y, mais ils sont imprécis lorsqu'il s'agit de déterminer l'altitude. Si nous voulons enregistrer les variations d'altitude, par exemple, de la base au sommet d'une colline, nous avons besoin d'une solution plus performante.

Grâce à l'outil MobileTogether Designer, nous pouvons créer une application mobile multiplateforme qui permet aux utilisateurs finaux de collecter des données pour des lieux spécifiques, sur demande. Nous pouvons extraire les coordonnées de chaque point et obtenir des données d'altitude précises en utilisant le service web USGS Point Query, dont la description est disponible sur le [site web de l'USGS](http://nationalmap.gov/3DEP/3dep_prodserv.html).

Tout d'abord, nous pouvons tester le service web directement dans un navigateur en utilisant l'URL suivante : [http://ned.usgs.gov/epqs](http://ned.usgs.gov/epqs)

![Service de requête de points de l'USGS](/blog/images/USGS-site-Capture-B.png)

Nous fournissons simplement un ensemble de coordonnées, sélectionnons les unités de mesure et les types de données de sortie, puis nous cliquons sur "Obtenir l'altitude". Le service de requête d'altitude renvoie le résultat ci-dessous :

![Résultat de la requête de l'USGS (United States Geological Survey)](/blog/images/USGS-site-result-edit-B.png)

Deux aspects intéressants de ce résultat sont l'URL générée dans la fenêtre des résultats, que nous pouvons utiliser comme modèle pour spécifier la source de données du service REST dans MobileTogether, et le contenu du résultat, qui affiche la structure XML. Voici l'URL complète :

![URL d'exemple complet pour le service de requête de points de l'USGS](/blog/images/URL-Capture-2.png)

Pour intégrer le service REST en tant que source de données pour une application mobile, nous pouvons copier l'URL dans la fenêtre de dialogue "Requête API RESTful MobileTogether" et remplacer les paramètres par les coordonnées x et y. Nous utiliserons également un paramètre pour spécifier les unités, permettant ainsi à l'utilisateur de choisir entre les pieds et les mètres.

![Dialogue de l'API RESTful de MobileTogether Designer](/blog/images/Designer-API-dialog-Capture-3-edit.png)

Dans notre application, les coordonnées sont lues par un groupe d'actions, et les variables définies comme données persistantes sont mises à jour avec les valeurs de longitude et de latitude.

![MobileTogether : Groupe d'actions pour la géolocalisation](/blog/images/Get-Location-Action-Group-Capture.png)

Ces valeurs sont ensuite fournies comme paramètres pour la requête GET, conformément aux expressions XPath définies dans la colonne "Valeur" du tableau "Paramètres". Le système d'aide intégré à MobileTogether Designer comprend une documentation complète des options et des paramètres des services REST, y compris la prise en charge des champs d'en-tête HTTP et du contenu multipart HTTP, requis par certains services.

Lorsque nous fermons la fenêtre de dialogue, une nouvelle source de données, correspondant à la requête REST, est automatiquement ajoutée à la fenêtre des sources de la page. Un clic droit sur la nouvelle source de données ouvre un menu contextuel où l'une des options est "Importer la structure à partir de XML". Cela ouvre une fenêtre de dialogue où vous pouvez soit spécifier un fichier, soit copier-coller l'URL d'exemple originale, avec les valeurs des paramètres intégrées, afin de récupérer directement la structure à partir du service REST. Dans les deux cas, la structure des sources de la page est mise à jour avec des nœuds qui correspondent aux résultats de la requête :

![Vue source du concepteur MobileTogether](/blog/images/Designer-Page-Source-Capture.png)

Si vous préférez travailler avec des données JSON plutôt qu'avec du XML, sélectionnez simplement l'option JSON dans la fenêtre de requête de l'API REST, puis modifiez l'URL pour sélectionner les données JSON provenant du service web. Le menu contextuel proposera l'option "Importer la structure à partir de JSON", et le reste du fonctionnement de MobileTogether Designer reste le même.

L'image ci-dessous montre l'écran principal de l'application une fois terminée. Sur l'écran de gauche, l'application vient d'être lancée et attend que l'utilisateur active le suivi GPS en cliquant sur l'une des cases à cocher. À droite, le GPS est activé et le bouton "Mettre à jour la position" est affiché. L'utilisateur clique sur ce bouton pour enregistrer une paire de coordonnées, et l'application effectue une requête REST pour obtenir l'altitude correspondante.

![Deux captures d'écran de l'application mobile de démonstration GPS](/blog/images/app-ui-1b.png)

L'application désactive ensuite le suivi GPS afin de réduire la consommation d'énergie, puis met à jour l'affichage avec la nouvelle position :

![Vue des données d'un emplacement enregistré par l'application de démonstration GPS](/blog/images/app-ui-2b.png)

Les boutons étiquetés "Afficher l'adresse" et "Afficher la carte" permettent d'afficher plus d'informations sur les dernières coordonnées. Une page de paramètres permet à l'utilisateur de définir ses préférences et d'enregistrer des ensembles de coordonnées dans des fichiers GPX. L'application comprend également une page "Détails" qui affiche les données GPS brutes du dernier point enregistré.

Si vous souhaitez tester l'application par vous-même, [téléchargez MobileTogether Designer](https://www.altova.com/fr/download/mobiletogether.html) – son utilisation est gratuite – et récupérez une copie de l'application de géolocalisation ainsi que les fichiers associés sur GitHub à l'adresse [https://github.com/altova/MobileTogether-geolocation-example](https://github.com/altova/MobileTogether-geolocation-example). Vous pouvez l'exécuter dans le simulateur intégré à MobileTogether Designer et prévisualiser l'application telle qu'elle apparaît sur Android, iOS, Windows Phone, et plus encore. Nous avons même inclus un fichier de données contenant des coordonnées pour simuler un appareil mobile en mouvement pendant que l'application s'exécute dans le Designer.
