Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Transformations de modèles de mappage pour REST APIs dans API Gateway
Une transformation de modèle de mappage utilise un modèle de mappage pour modifier votre demande d’intégration ou votre réponse d’intégration. Un modèle de mappage est un script exprimé dans le langage VTL (Velocity Template Language)Content-typeen-tête. Vous utilisez des modèles de mappage lorsque vous transformez des modèles de mappage. Cette section décrit les informations conceptuelles relatives aux modèles de mappage.
Le schéma suivant montre le cycle de vie des demandes pour une POST /pets ressource intégrée à un point de terminaison PetStore d'intégration. Dans cette API, un utilisateur envoie des données sur un animal de compagnie, et le point de terminaison d’intégration renvoie les frais d’adoption relatifs à cet animal. Dans le cycle de vie de cette demande, les transformations du modèle de mappage filtrent le corps de la demande vers le point de terminaison d’intégration, et filtrent le corps de réponse provenant du point de terminaison d’intégration.
Les sections suivantes expliquent le cycle de vie des demandes et réponses.
Demande de méthode et demande d’intégration
Voici le corps de la demande envoyé à la demande de méthode dans l’exemple précédent :
POST /pets
HTTP/1.1
Host:abcd1234.us-west-2.amazonaws.com
Content-type: application/json
{
"id": 1,
"type": "dog",
"Age": 11,
}
Le corps de cette demande n’est pas au format approprié pour être utilisé par le point de terminaison d’intégration. API Gateway transforme donc le modèle de mappage. API Gateway transforme le modèle de mappage uniquement parce qu’un modèle de mappage est défini pour le Content-Type application/json. Si vous ne définissez pas de modèle de mappage pour Content-Type, API Gateway transmet par défaut le corps au point de terminaison d’intégration par le biais de la demande d’intégration. Pour modifier ce comportement, consultez Comportement des demandes de méthode pour les charges utiles sans modèles de mappage pour REST APIs dans API Gateway.
Le modèle de mappage suivant transforme les données de la demande de méthode dans la demande d’intégration avant qu’elles ne soient envoyées au point de terminaison d’intégration :
#set($inputRoot = $input.path('$'))
{
"dogId" : "dog_"$elem.id,
"Age": $inputRoot.Age
}
La variable
$inputRootreprésente l’objet racine dans les données JSON d’origine de la section précédente. Les directives commencent par le symbole#.-
dogest une concaténation de la valeur de l’utilisateuridet d’une valeur de chaîne. -
Ageprovient du corps de la demande de méthode.
La sortie suivante est ensuite transmise au point de terminaison d’intégration :
{
"dogId" : "dog_1",
"Age": 11
}
Réponse d’intégration et réponse de méthode
Une fois la demande envoyée avec succès au point de terminaison d’intégration, celui-ci envoie une réponse à la réponse d’intégration d’API Gateway. Voici un exemple de données de sortie provenant du point de terminaison d’intégration :
{
"dogId" : "dog_1",
"adoptionFee": 19.95,
}
La réponse de méthode attend des données utiles différentes de celles renvoyées par la réponse d’intégration. API Gateway transforme le modèle de mappage. API Gateway transforme le modèle de mappage uniquement parce qu’un modèle de mappage est défini pour le Content-Type application/json. Si vous ne définissez pas de modèle de mappage pour Content-Type, API Gateway transmet par défaut le corps à la réponse de méthode par le biais de la réponse d’intégration. Pour modifier ce comportement, consultez Comportement des demandes de méthode pour les charges utiles sans modèles de mappage pour REST APIs dans API Gateway.
#set($inputRoot = $input.path('$'))
{
"adoptionFee" : $inputRoot.adoptionFee,
}
La sortie suivante est envoyée à la réponse de méthode :
{"adoptionFee": 19.95}
Ceci conclut l’exemple de transformation de modèle de mappage. Nous vous recommandons, dans la mesure du possible, d’utiliser une intégration de proxy pour transformer vos données au lieu de transformer le modèle de mappage. Pour de plus amples informations, veuillez consulter Choix d’un type d’intégration d’API API Gateway.