Structure d’un appel de service Web
Cette rubrique explique en quoi consiste un appel de service web et fournit un exemple de mappage avec un appel à une API HTTP.
Le mappage ci-dessous envoie une requête GET à une API HTTP pour extraire un produit en fonction de son ID et génère les détails du produit dans un fichier JSON.

L’appel du service web consiste en deux parties : Requête et Réponse. La partie Requête vous permet de fournir les données depuis le mappage du service web. La partie Réponse vous permet d’accéder aux données retournées par le service web et de les mapper dans d’autres formats. Dans notre exemple, les données renvoyées par le service sont mappées au fichier JSON.
Requête
La requête contient plusieurs paramètres et un corps de requête (Body).
Paramètres
Les paramètres transmettent les informations requises pour le serveur afin qu’il traite la requête et renvoie une réponse appropriée. Les paramètres peuvent être de types variés (par ex., les paramètres chemin, les paramètres requête) et peuvent servir différents objectifs (par ex., filtrer, trier et rechercher des données, transmettre les détails d’authentification).
Dans notre exemple, l’ID fournie à la requête HTTP a une valeur constante de 2, ce qui signifie que nous voulons extraire des détails du produit avec cette ID. De plus, la requête contient deux paramètres en-tête : Accept et Accept-Charset. Le paramètre Accept a une valeur constante application/json, qui se réfère au type de contenu que MapForce souhaite obtenir du serveur. Vous pouvez définir les paramètres dans le dialogue Paramètres de l’appel du service Web (voir Paramètres).
Body
Dans l’appel du service web ci-dessus, la structure du corps de requête n’est pas définie, car nous voulons uniquement envoyer une requête, utilisant les paramètres en-tête et modèle. Il peut être judicieux de définir la structure du corps de la requête, par exemple si vous souhaitez effectuer des opérations POST, PUT et PATCH.
Réponse
La partie réponse de l’appel contient un code de statut, des en-têtes et un corps de réponse (Body).
Code de statut
Le code de statut HTTP est un nombre à trois chiffres (par ex., 404) qui est envoyé par le serveur pour indiquer le résultat de la requête.
En-têtes
Les en-têtes fournissent des méta-données importantes sur la réponse (par ex., le type de contenu étant retourné) et aide MapForce à comprendre comment traiter la réponse.
Les en-têtes de réponse retournées par le service web sont mappables s'il s'agit d'en-têtes supplémentaires (ceux qui ne commencent pas par Content). Le nœud En-têtes de la structure de réponse contient deux items enfant : Nom et Valeur.
Body
Le corps de réponse (Body) obtient le contenu renvoyé par le serveur. Son apparence dépend de la structure de réponse que vous avez sélectionnée.
Les données à ce niveau sont encodées en binaire, pour cette raison, une interaction directe nécessite des fonctions mime MapForce. Notez que vous ne devez pas nécessairement interagir avec Body si le service web s’attend ou renvoie les données structurées comme XML ou JSON. Le mappage direct des données vers ou depuis Body n’est nécessaire que si vous appelez un service web qui attend ou renvoie du contenu non structuré.
Par défaut, l'item Body est configuré afin de parser le résultat si le code de statut HTTP va de 200 à 299. Cela signifie que le mappage retournera une erreur pour des codes de statut supérieurs à 299. De plus, une erreur sera retournée si la réponse ne peut pas être parsée ou si le service web ne peut pas être appelé en raison d'une erreur de connexion ou de problèmes de résolution de DNS.
Dans certains cas, vous souhaiterez que le mappage ne lance pas d'erreur même si le code de statut HTTP est supérieur à 299. Pour ce faire, cliquer sur la touche située à côté de Body dans la réponse et changer la plage de code de statut HTTP. En alternative, vous pouvez créer plusieurs items Body pour la réponse. Par exemple, vous pouvez créer un corps qui gère les résultats avec succès et un autre qui gère les erreurs. Pour plus de détails concernant une configuration, voir Gestion d'erreur dans les HTTP API.