Exemple : Pour ajouter un appel à un service Web de style REST :
Cet exemple vous montre comment appeler un service Web HTTP générique depuis MapForce. La description du service Web appelés dans cet exemple peut être trouvé sous https://app.swaggerhub.com/apis/FAA/ASWS/1.1.0. Ce service Web renvoie l’information sur les statuts d’aéroport (par ex., fermetures d’aéroport, retards, etc.) dans différents aéroports des US. L'exemple s'accompagne d'un fichier de design de mappage disponible dans le chemin suivant : MapForceExamples\AirportStatus.mfd.
Dans cet exemple, il n’existe pas de structure de requête et la réponse de la structure du service Web est un schéma DTD qui est disponible dans le chemin suivant : MapForceExamples\AirportStatus.mfd. La réponse sera mappée dans un composant XML basé sur AirportStatus.dtd.
Pour configurer l’appel de service Web REST, suivez les étpaes décrites ci-dessous.
Étape 1 : Ajouter Appel de service Web
Dans cette étape, la tâche doit ajouter un composant d’appel du service Web dans le mappage et définir les paramètres d’appel. Suivez les étapes ci-dessous :
1.Veuillez assurer que le langage de transformation du mappage est Built-In.
2.Dans le menu Insérer, cliquez sur Fonction du service Web. Cela ouvre le dialogue Paramètres d'appel du service web (voir capture d'écran ci-dessous).
3.Sous Définition de Service, cliquez sur Manuel.
4.Configurez la méthode de requête sur GET et l'URL sur https://nasstatus.faa.gov/api/airport-status-information.
![mf_airportstatus_01](./images/mf_airportstatus_01.png)
5.Dans la section Structures du dialogue Paramètres d’appel du service web, cliquez sur le bouton Éditer à côté du champ Réponse. Ceci affiche le dialogue Structure de réponse (voir ci-dessous), dans lequel vous devez fournir le schéma de la réponse du service Web. Le schéma peut être trouvé dans le chemin suivant : MapForceExamples\AirportStatus.mfd.
![mf_airportstatus_02](./images/mf_airportstatus_02.png)
6.Cliquez sur OK. Le service Web est maintenant disponible dans la zone de mappage (voir ci-dessous)
![mf_airportstatus_03](./images/mf_airportstatus_03.png)
Étape 2 : Ajouter la sortie XML
À la deuxième étape, l’objectif est d’ajouter un composant cible et de créer des connexions entre l’appel de service web et la cible. Suivez les instructions ci-dessous :
1.Dans le menu Insérer, cliquez sur Schéma XML/Fichier.
2.Cliquez sur Choisir un fichier et recherchez MapForceExamples\AirportStatus.dtd et cliquez sur Ouvrir.
3.Lorsque vous serez invité à fournir un fichier XML échantillon, cliquez sur Sauter (un fichier XML d'échantillon n'est pas nécessaire puisqu'il sera généré).
4.Connecter le nœud AIRPORT_STATUS_INFORMATION du corps de réponse du service Web au nœud AIRPORT_STATUS_INFORMATION du composant XML, comme indiqué ci-dessous.
![mf_airportstatus_06](./images/mf_airportstatus_06.png)
Étape 3 : Exécuter le mappage
La dernière étape est d’appeler le service Web : Cliquer sur la touche Sortie pour exécuter le mappage et consulter la sortie générée. Si l'appel de service Web est exécuté avec succès, l'onglet Sortie affiche la structure XML retournée. Si l’appel n’est pas réussi, MapForce retournera une erreur. Par exemple, vous pourrez obtenir un message HTTP code 404 si l’information requise n’a pas été trouvée.
Dans notre exemple, nous avons obtenu l’information suivante sur les statuts d’aéroport :
<AIRPORT_STATUS_INFORMATION>
<Update_Time>Fri Sep 15 12:04:41 2023 GMT</Update_Time>
<Dtd_File>http://www.fly.faa.gov/AirportStatus.dtd</Dtd_File>
<Delay_type>
<Name>Airport Closures</Name>
<Airport_Closure_List>
<Airport>
<ARPT>BOS</ARPT>
<Reason>!BOS 09/153 BOS AD AP CLSD TO NON SKED TRANSIENT GA ACFT EXC PPR 617-561-2500 2309081532-2310010359</Reason>
<Start>Sep 08 at 15:32 UTC.</Start>
<Reopen>Oct 01 at 03:59 UTC.</Reopen>
</ Airport>
<Airport>
<ARPT>LAS</ARPT>
<Reason>!LAS 07/017 LAS AD AP CLSD TO NON SKED TRANSIENT GA ACFT EXC PPR 702-261-7775 2307072300-2310052300</Reason>
<Start>Sep 07 at 23:00 UTC.</Start>
<Reopen>Oct 05 at 23:00 UTC.</Reopen>
</ Airport>
<Airport>
<ARPT>BCT</ARPT>
<Reason>!MIA 09/078 BCT AD AP CLSD EXC HEL OPS FM ALL APN MON-FRI 0100-1100 2309110100-2309291100</Reason>
<Start>Sep 11 at 01:00 UTC.</Start>
<Reopen>Sep 29 at 11:00 UTC.</Reopen>
</ Airport>
</ Airport_Closure_List>
</ Delay_type>
</ AIRPORT_STATUS_INFORMATION>
Si vous avez MapForce Server (https://www.altova.com/mapforce-server), vous pouvez aussi compiler le mappage vers un fichier d'exécution de mappage (*.mfx) et de l'exécuter depuis la ligne de commande ou depuis l'API MapForce Server sur l'appareil de serveur sur lequel MapForce Server est exécuté (voir Compiler des mappages sur des fichiers d'exécution MapForce Server ).
Vous avez maintenant terminé de créer un service Web HTTP générique qui utilise une méthode GET pour extraire les données de statut d'aéroport en temps réel. Pour plus d'informations concernant le travail avec les services Web génériques, voir aussi Ajouter un appel de service Web (Style REST).