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

Date de la dernière mise à jour : 08/11/2018

Je souhaite intégrer un modèle à mon API dans Amazon API Gateway. Comment puis-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 de données d'une charge utile. Les modèles API Gateway doivent utiliser le schéma JSON version préliminaire 4.

Procédez comme suit pour associer un modèle à votre API :

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

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

3.    Testez le modèle.

4.    (Facultatif) Créez un modèle de mappage pour le modèle.

5.    Déployez et testez l'API.

Solution

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

Écrivez un schéma de modèle que vous souhaitez associer à votre API. L'exemple de modèle suivant nécessite que les utilisateurs d'API transmettent leurs UserID et Nom dans le corps de la demande. Le modèle exige également que les valeurs UserID et Nom soient des valeurs de chaîne, et que tout Age fourni soit une valeur entière supérieure ou égale à 18.

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 à l'aide de 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, sélectionnez 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, sélectionnez Demande de méthode.

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

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

7.    Pour Type de contenu, entrez 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.    Cochez l'icône représentant une coche pour enregistrer vos sélections.

Tester le modèle

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

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

3.    Pour Corps de la demande, entrez un corps de demande qui correspond 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 Tester.

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

(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, procédez comme suit :

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

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

3.    Développez Mappage de modèles.

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

5.    Sélectionnez Ajouter un modèle de mappage.

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

7.    Pour Générer un 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, sélectionnez Ressources.

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

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

4.    Sélectionnez Déploiement.

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 à l'aide d'un outil de développement d'API ou d'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}'

Après avoir envoyé une demande de test qui utilise la méthode et le type de contenu corrects, 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}

Après avoir envoyé une demande de test qui utilise un corps de réponse non valide, vérifiez que vous recevez une erreur 400 avec un message similaire à « Corps de demande non valide».


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

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?