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

Lecture de 5 minute(s)
0

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

Résolution

Important : les modèles API Gateway doivent utiliser le schéma JSON version préliminaire 4.

Écrivez un schéma de modèle à associer à votre API REST

Pour plus d'informations sur la façon d'écrire un schéma de modèle, consultez Utilisation de modèles et de modèles de mappage.

Exemple de schéma de modèle

Remarque : cet exemple de modèle utilise application/json comme clé par défaut pour sélectionner le modèle de mappage et nécessite les éléments suivants :
Les utilisateurs de l'API doivent transmettre leur ID utilisateur et leur nom dans le corps de requête.
L'ID utilisateur et le nom doivent être des valeurs de chaîne.
Tout âge fourni doit être une valeur entière supérieure ou égale à 18.

{
  "$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"]
}

Créez un modèle pour votre API REST

Suivez les instructions de la section Créer un modèle dans API Gateway pour créer un modèle à l'aide du schéma que vous avez écrit.

Associez votre 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 le volet 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 requête. 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 le panneau Exécution de la méthode, choisissez TEST.

3.    Pour Corps de requête, saisissez un corps de requête correspondant au schéma de modèle que vous avez créé.

Remarque : pour tester l'exemple de modèle application/json, utilisez cet exemple de corps de requête :

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

4.    Sélectionnez Test.

5.    Si le corps de requête renvoyée correspond au schéma du modèle, le test est réussi.

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

Remarque : vous pouvez modifier les requêtes envoyées au backend intégré de votre API en créant un modèle de mappage.

Pour créer un modèle de mappage, procédez comme suit :

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

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

3.    Développez Mapping Templates.

4.    Pour Transmission du corps de requête, 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.    Choisissez Enregistrer.

Déployez votre API pour valider les modifications

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.
Important : si vous avez créé une étape, vous devez également saisir un nom pour Nom de l'étape.

4.    Choisissez Déployer. L'URL d'appel pour envoyer des requêtes à l'API déployée apparaît.

5.    Copiez l'URL d'appel.

Testez votre API REST

Envoyez une demande de test à votre API qui utilise la méthode et le type de contenu associés à votre modèle. Une demande réussie renvoie une réponse 200 OK. Une demande infructueuse renvoie un code d'état 400.

Pour envoyer une demande de test, utilisez l'outil de développement d'API ou une commande curl.

Pour plus d'informations, consultez la section Appel d'une API REST dans Amazon API Gateway.

Exemple de commande curl qui utilise la demande de méthode POST HTTP et teste une réponse 200 OK

Remarque : cet exemple de commande envoie une demande de test à l'exemple de modèle application/json. La commande renvoie une réponse 200 OK.

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

(Facultatif) Exemple de commande curl qui utilise la demande de méthode POST HTTP et teste un code d'état 400

Remarque : le corps de requête de cet exemple de commande n'est pas valide, car il n'inclut pas l'exemple d'attribut de modèle requis, UserID. La commande renvoie un code d'état 400.

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