Services web REST pour la gestion des données
La version 2016, release 2 de MapForce, offre des fonctionnalités améliorées pour : Correspondance des données des services web, offrant une prise en charge robuste pour les services Web REST. MapForce accepte XML ou JSON comme réponse du service Web, permet la définition de paramètres et prend en charge les en-têtes HTTP personnalisés. Les utilisateurs peuvent définir l'interface du service Web manuellement ou en important les paramètres à partir d'un fichier WADL ou d'une URL. La définition manuelle des paramètres du service Web REST permet aux développeurs de créer des paramètres à partir d'une URL de modèle. C'est une étape pratique lorsque les développeurs testent et affinent les appels REST dans une fenêtre de navigateur, car l'URL peut être copiée depuis le navigateur pour devenir le modèle.

Nous avons déjà souligné que les coordonnées enregistrées par les systèmes GPS sont précises, mais.. Les données d'altitude sont notoirement imprécises. Le service géologique américain (USGS) propose un service web REST qui accepte des requêtes contenant la longitude et la latitude, et qui fournit des données d'altitude précises, soit au format XML, soit au format JSON. Nous pouvons utiliser ce service web dans une application MapForce pour mettre à jour les données GPS provenant d'un appareil Garmin, et convertir simultanément le format des données de XML à JSON.
Nous allons commencer par tester le service web dans une fenêtre de navigateur. L'URL indiquée ci-dessous ouvre un formulaire de saisie permettant de générer une requête d'exemple :

Lorsque nous cliquons sur le bouton "Obtenir l'altitude", le formulaire génère une requête REST GET complète, la soumet, et affiche le résultat ci-dessous. Nous pouvons utiliser ce résultat pour modéliser la réponse et l'utiliser pour notre mappage de données.

Nous allons ajouter le service web à notre mappage en cliquant sur le bouton "Insérer une fonction de service web" dans la barre d'outils de MapForce. Cela ouvre la fenêtre de configuration de l'appel du service web, où nous devons fournir l'URL du service de l'USGS.

Ensuite, nous devons définir les paramètres de la requête et le corps de la réponse, ce qui permettra de créer les éléments nécessaires à la correspondance, comme vous pouvez le constater ci-dessous dans la partie suivante de la fenêtre de configuration de l'appel.

Nous avons généré facilement un schéma JSON dans XMLSpy pour définir la réponse, en nous basant sur le fichier d'exemple JSON enregistré à partir de la fenêtre du navigateur. Ci-dessous, vous trouverez la vue du schéma XMLSpy de la réponse convertie :

Le formulaire de saisie des données d'altitude du USGS nous a fourni toutes les informations nécessaires pour définir les paramètres d'entrée, ce qui nous permet de les ajouter à la section suivante de la boîte de dialogue des paramètres d'appel :

Les unités et les valeurs de sortie pour chaque requête ne changeront pas pendant l'exécution, et nous aurions pu spécifier des valeurs fixes. Au lieu de cela, nous les fournirons dans la configuration sous forme de constantes. Tous les paramètres de sécurité nécessaires seront également configurés dans la fenêtre de dialogue des paramètres d'appel. Lorsque nous cliquons sur "OK" pour fermer la fenêtre de dialogue, la fonction du service web est ajoutée à la configuration.

Chaque point de tracé dans le fichier GPX source fournira un ensemble de coordonnées. Pendant l'exécution de la cartographie, une requête GET aux services web interrogera le USGS à chaque fois qu'un point de tracé est traité, et la réponse fournira des données d'altitude de remplacement.
Il ne reste plus qu'à connecter les éléments de la requête et de la réponse aux composants d'entrée et de sortie, comme illustré ci-dessous. Les constantes relatives aux unités et au type de sortie sont visibles en haut à gauche, et la valeur d'altitude est arrondie à deux décimales avant d'être insérée dans la sortie.

Veuillez noter que la sortie est un fichier JSON. Le composant d'entrée n'est pas visible dans cette vue partielle de la configuration, mais il s'agit d'un fichier GPX standard au format XML. Les lignes de connexion de la configuration, qui entrent par la gauche, passent derrière la fonction du service web illustrée et se connectent au composant de sortie, représentent toutes des valeurs qui seront copiées sans modification du fichier XML d'entrée vers les éléments JSON correspondants.
Lorsque nous cliquons sur le bouton "Sortie MapForce", la transformation est exécutée et un fichier JSON est généré, comme on peut le constater dans la vue partielle présentée ici :

Dans un environnement de production, nous pouvons enregistrer la configuration sous forme de fichier d'exécution MapForce, afin de permettre un traitement automatisé par le serveur MapForce, soit directement en ligne de commande, soit sous le contrôle du serveur FlowForce.
Altova MapForce est un outil graphique de cartographie, de conversion et d'intégration de données, primé, qui permet de faire correspondre des données entre n'importe quelle combinaison de formats, notamment XML, bases de données, EDI, XBRL, fichiers plats, Excel, JSON et/ou services web. Téléchargez une version d'essai gratuite et entièrement fonctionnelle et testez-le par vous-même !