Exemple : Appeler un API HTTP
Cet exemple vous montre comment appeler un service web HTTP générique depuis MapForce. La description du service web appelé dans cet exemple est disponible à l'adresse https://app.swaggerhub.com/apis/FAA/ASWS/1.1.0. Ce service web renvoie des informations sur la situation des aéroports (par exemple, fermetures, retards, etc.) dans différents aéroports américains. L'exemple s'accompagne d'un fichier de design de mappage disponible dans le chemin suivant : MapForceExamples\AirportStatus.mfd.
Dans cet exemple, il n'y a pas de structure de requête, et la structure de réponse du service web est un schéma DTD disponible à l'emplacement suivant : MapForceExamples\AirportStatus.mfd. La réponse sera mappée dans un composant XML basé sur AirportStatus.dtd.
Pour configurer un appel de service HTTP API, suivez les étapes décrites ci-dessous.
Étape 1 : Ajouter un appel de service web
Dans cette étape, vous devez ajouter un composant d'appel de service web au mappage et définir les paramètres de l'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.
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. Cela ouvre le dialogue Structure de réponse (voir ci-dessous), dans lequel vous devez indiquer le schéma de la réponse du service web. Le schéma peut être trouvé dans le chemin suivant : MapForceExamples\AirportStatus.mfd.
6.Cliquez sur OK. Le service web est désormais disponible dans la zone de mappage (voir ci-dessous)

Étape 2 : Ajouter la sortie XML
Dans 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.Connectez le nœud AIRPORT_STATUS_INFORMATION du corps de la réponse du service web au nœud AIRPORT_STATUS_INFORMATION du composant XML, comme illustré ci-dessous.

Étape 3 : Exécuter le mappage
La dernière étape consiste à 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 du service web est exécuté avec succès, le volet Sortie affiche la structure XML renvoyé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 désormais terminé la création d’un appel de service web HTTP générique qui utilise une méthode GET pour récupérer des données sur l’état des aéroports en temps réel. Pour plus d’informations sur l’utilisation des services web génériques, consultez également Ajouter un appel de service Web.

