Comment associer un modèle à mon API dans API Gateway ?

Dernière mise à jour : 30/10/2020

Je souhaite intégrer un modèle à mon API dans Amazon API Gateway. Comment dois-je procéder ?

Brève description

Vous pouvez créer un modèle pour votre API dans API Gateway afin de définir le format des données d'une charge utile. Les modèles API Gateway doivent utiliser le schéma JSON version préliminaire 4.

Associez un modèle à votre API en procédant comme suit :

1.     Écrire un schéma de modèle et créer un modèle pour votre API.

2.     Associer le modèle à la méthode d'API.

3.     Tester le modèle.

4.     (Facultatif) créer un modèle de mappage pour le modèle.

5.     Déployer et tester l'API.

Résolution

Écrire un schéma de modèle et créer un modèle pour votre API

Écrivez un schéma de modèle à associer à votre API. L'exemple de modèle suivant implique que les utilisateurs d'API transfèrent leurs UserID et Nom dans le corps de la demande. Le modèle exige également que les UserID et Nom soient des valeurs de chaîne et que tout Âge saisi soit une valeur entière égale à 18 ou à une valeur supérieure.

Remarque : cet exemple utilise application/json.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "User",
    "type": "object",
    "properties": {
        "UserID": {
            "type": "string"
        },
        "Name": {
            "type": "string"
        },
        "Age": {
            "description": "Age in years",
            "type": "integer",
            "minimum": 18
        }
    },
    "required": ["UserID", "Name"]
}

Après avoir écrit le schéma de modèle, créez un modèle utilisant la console API Gateway.

Associer le modèle à la méthode d'API

1.    Ouvrez votre API dans la console API Gateway.

2.    Dans le volet de navigation, choisissez Ressources.

3.    Sélectionnez la méthode d'API à laquelle vous souhaitez associer le modèle.

4.    Dans la vue Exécution de la méthode, choisissez Demande de méthode.

5.    Pour Validateur de demande, sélectionnez Valider le corps. Ensuite, choisissez l'icône représentant une coche pour enregistrer votre sélection.

6.    Développez Corps de la demande. Ensuite, choisissez Ajouter un modèle.

7.    Pour Type de contenu, saisissez le type de contenu de votre modèle (par exemple, application/json).

8.    Pour Nom du modèle, sélectionnez le modèle que vous avez créé.

9.    Choisissez l'icône représentant une coche pour enregistrer vos sélections.

Tester le modèle

1.    Dans la liste Ressources de votre API, choisissez la méthode à laquelle vous avez associé votre modèle.

2.    Dans la vue Exécution de la méthode, choisissez TEST.

3.    Pour Corps de la demande, entrez un corps de demande correspondant au schéma de modèle que vous avez créé.

Remarque : pour tester l'exemple de modèle application/json, vous pouvez utiliser cet exemple de corps de demande :

{ "UserID": "abc123", "Name":"Ana","Age":21}

4.    Sélectionnez Test.

5.    Si l'exemple de corps de modèle correspond au schéma du modèle, vous recevez une réponse de réussite.

(Facultatif) créer un modèle de mappage pour le modèle

Si vous souhaitez créer un modèle de mappage pour modifier les demandes envoyées au backend intégré de votre API, suivez ces étapes :

1.    Dans la liste Ressources de votre API, choisissez la méthode à laquelle vous avez associé votre modèle.

2.    Dans la vue Exécution de la méthode, choisissez Demande d'intégration.

3.    Développez Mapping Templates.

4.    Pour Transmission du corps de la demande, sélectionnez Lorsqu'aucun modèle n'est défini (recommandé).

5.    Sélectionnez Add mapping template.

6.    Pour Type de contenu, saisissez le type de contenu de votre modèle (par exemple, application/json). Ensuite, choisissez l'icône représentant une coche pour enregistrer votre sélection.

7.     Pour Générer le modèle, sélectionnez le modèle que vous avez créé.

Remarque : l'exemple de modèle application/json apparaît comme suit :

#set($inputRoot = $input.path('$')) { "UserID" : "$inputRoot.UserID", "Name" : "$inputRoot.Name", "Age" : $inputRoot.Age }

8.     Modifiez le modèle en fonction des valeurs que vous souhaitez transmettre au backend intégré de votre API.

9.    Sélectionnez Enregistrer.

Déployer et tester l'API

1.    Dans le volet de navigation, choisissez Ressources.

2.    Choisissez Actions. Ensuite, sélectionnez Déployer l'API.

3.    Pour Étape de déploiement, sélectionnez une étape existante ou choisissez [Nouvelle étape] pour créer une étape. Si vous avez créé une nouvelle étape, vous devez également entrer un nom pour Nom de l'étape.

4.    Choisissez Deploy (Déployer).

Pour tester votre API, envoyez une demande de test à votre API qui utilise la méthode et le type de contenu associés à votre modèle. Vous pouvez envoyer une demande de test soit à l'aide de l'outil de développement d'API, soit en utilisant une commande curl. Cette commande curl envoie une demande de test pour l'exemple de modèle application/json :

curl -X POST <YOUR-API-URL> -H 'Content-Type: application/json' -d '{ "UserID": "abc123", "Name":"Ana","Age":21}'

Une fois que vous avez envoyé une demande de test qui utilise la méthode et le type de contenu appropriés, vérifiez que vous recevez une réponse de réussite « 200 OK ».

Comme autre test, vous pouvez envoyer une demande de test avec un corps de réponse non valide. Le corps de demande suivant n'est pas valide selon l'exemple de modèle application/json, car il n'inclut pas l'attribut UserID requis :

{ "Name":"Ana", "Age":21}

Une fois que vous avez envoyé une demande de test qui utilise un corps de réponse non valide, vérifiez que vous recevez une erreur de type 400 avec un message similaire à « Corps de demande non valide ».


Cet article vous a-t-il été utile?


Besoin d'aide pour une question technique ou de facturation ?