Tutoriel : Création d'une calculatrice REST API avec deux intégrations AWS de services et une intégration Lambda sans proxy - APIPasserelle Amazon

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.

Tutoriel : Création d'une calculatrice REST API avec deux intégrations AWS de services et une intégration Lambda sans proxy

Ils Tutoriel : Création d'RESTAPIune intégration Lambda sans proxy utilisent exclusivement Lambda Function l'intégration. Lambda FunctionL'intégration est un cas particulier du type d'AWS Serviceintégration qui effectue une grande partie de la configuration de l'intégration pour vous, par exemple en ajoutant automatiquement les autorisations basées sur les ressources requises pour appeler la fonction Lambda. Ici, deux des trois intégrations utilisent l'intégration AWS Service. Dans ce type d'intégration, vous avez plus de contrôle, mais vous devrez effectuer manuellement des tâches telles que la création et la spécification d'un IAM rôle contenant les autorisations appropriées.

Dans ce didacticiel, vous allez créer une fonction Calc Lambda qui implémente des opérations arithmétiques de base, en acceptant et en renvoyant des entrées et des sorties JSON formatées. Vous allez ensuite créer un REST API et l'intégrer à la fonction Lambda de la manière suivante :

  1. En exposant une méthode GET sur la ressource /calc pour appeler la fonction Lambda, en fournissant l'entrée en tant que paramètres de chaîne de requête. (Intégration AWS Service)

  2. En exposant une méthode POST sur la ressource /calc pour appeler la fonction Lambda, en fournissant l'entrée dans la charge utile de la demande de méthode. (Intégration AWS Service)

  3. En exposant une méthode GET sur les ressources /calc/{operand1}/{operand2}/{operator} imbriquées pour appeler la fonction Lambda, en fournissant les données d'entrée en tant que paramètres de chemin. (Intégration Lambda Function)

En plus d'essayer ce didacticiel, vous souhaiterez peut-être étudier le fichier de API définition ouvert pour le CalcAPI, que vous pouvez importer dans API Gateway en suivant les instructions deDéveloppez REST APIs à l'aide d'Open API in API Gateway.

Création d'un rôle IAM assumable

Pour pouvoir invoquer votre API fonction Calc Lambda, vous devez disposer d'un rôle assumable de API passerelle, qui est un IAM IAM rôle doté de la relation de confiance suivante :

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "apigateway.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Le rôle que vous créez doit disposer de l'autorisation Lambda InvokeFunction. Dans le cas contraire, l'APIappelant recevra une 500 Internal Server Error réponse. Pour accorder cette autorisation au rôle, vous devez y associer la IAM politique suivante :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "*" } ] }

Voici comment procéder :

Création d'un rôle assumable IAM de API passerelle
  1. Connectez-vous à la console IAM.

  2. Sélectionnez Roles.

  3. Choisissez Create Role (Créer le rôle).

  4. Sous Sélectionner un type d’entité de confiance, choisissez AWS Service.

  5. Sous Choose the service that will use this role (Choisir le service qui utilisera ce rôle), choisissez Lambda.

  6. Sélectionnez Next: Permissions (Suivant : autorisations).

  7. Choisissez Create Policy (Créer une politique).

    Une nouvelle fenêtre de console Create Policy (Créer une politique) s'ouvre. Dans cette fenêtre, procédez de la façon suivante :

    1. Dans l'JSONonglet, remplacez la politique existante par la suivante :

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "*" } ] }
    2. Choisissez Examiner une politique.

    3. Sous Review Policy (Examiner une politique), procédez comme suit :

      1. Pour Nom, tapez un nom, par exemple lambda_execute.

      2. Choisissez Créer une politique.

  8. Dans la fenêtre de console d'origine Create Role (Créer un rôle), procédez comme suit :

    1. Sous Attach permissions policies (Attacher des politiques d'autorisations), choisissez votre politique lambda_execute dans la liste déroulante.

      Si votre politique n'est pas répertoriée dans la liste, cliquez sur le bouton d'actualisation en haut de la liste. (N'actualisez pas la page du navigateur.)

    2. Choisissez Next:Tags (Suivant : balises).

    3. Choisissez Next: Review (Suivant : vérifier).

    4. Sous Role name (Nom du rôle), saisissez un nom tel que lambda_invoke_function_assume_apigw_role.

    5. Sélectionnez Créer un rôle.

  9. Choisissez votre rôle lambda_invoke_function_assume_apigw_role dans la liste.

  10. Choisissez l'onglet Trust relationships.

  11. Choisissez Modifier la relation d'approbation.

  12. Remplacez la stratégie existante comme suit :

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "lambda.amazonaws.com", "apigateway.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  13. Choisissez Update Trust Policy.

  14. Notez le rôle ARN pour le rôle que vous venez de créer. Vous en aurez besoin ultérieurement.

Création d'une fonction Lambda Calc

Vous créerez ensuite une fonction Lambda à l'aide de la console Lambda.

  1. Dans la console Lambda, choisissez Create function (Créer une fonction).

  2. Choisissez Créer à partir de zéro.

  3. Pour Nom, saisissez Calc.

  4. Pour Exécution, choisissez le dernier environnement d’exécution Node.js ou Python compatible.

  5. Pour toutes les autres options, utilisez le paramètre par défaut.

  6. Sélectionnez Create function (Créer une fonction).

  7. Copiez la fonction Lambda suivante dans votre environnement d’exécution préféré et collez-la dans l’éditeur de code de la console Lambda.

    Node.js
    export const handler = async function (event, context) { console.log("Received event:", JSON.stringify(event)); if ( event.a === undefined || event.b === undefined || event.op === undefined ) { return "400 Invalid Input"; } const res = {}; res.a = Number(event.a); res.b = Number(event.b); res.op = event.op; if (isNaN(event.a) || isNaN(event.b)) { return "400 Invalid Operand"; } switch (event.op) { case "+": case "add": res.c = res.a + res.b; break; case "-": case "sub": res.c = res.a - res.b; break; case "*": case "mul": res.c = res.a * res.b; break; case "/": case "div": if (res.b == 0) { return "400 Divide by Zero"; } else { res.c = res.a / res.b; } break; default: return "400 Invalid Operator"; } return res; };
    Python
    import json def lambda_handler(event, context): print(event) try: (event['a']) and (event['b']) and (event['op']) except KeyError: return '400 Invalid Input' try: res = { "a": float( event['a']), "b": float( event['b']), "op": event['op']} except ValueError: return '400 Invalid Operand' if event['op'] == '+': res['c'] = res['a'] + res['b'] elif event['op'] == '-': res['c'] = res['a'] - res['b'] elif event['op'] == '*': res['c'] = res['a'] * res['b'] elif event['op'] == '/': if res['b'] == 0: return '400 Divide by Zero' else: res['c'] = res['a'] / res['b'] else: return '400 Invalid Operator' return res
  8. Sous Execution role (Rôle d'exécution), choisissez Choose an existing role (Choisir un rôle existant).

  9. Entrez le rôle correspondant ARN au lambda_invoke_function_assume_apigw_role rôle que vous avez créé précédemment.

  10. Choisissez Deploy (Déployer).

Cette fonction nécessite deux opérandes (a et b) et un opérateur (op) à partir du paramètre d'entrée event. L'entrée est un JSON objet au format suivant :

{ "a": "Number" | "String", "b": "Number" | "String", "op": "String" }

Cette fonction renvoie le résultat calculé (c) et les données d'entrée. En cas d'entrée non valide, la fonction renvoie la valeur null ou la chaîne « Opération non valide » en tant que résultat. La sortie est au JSON format suivant :

{ "a": "Number", "b": "Number", "op": "String", "c": "Number" | "String" }

Vous devez tester la fonction dans la console Lambda avant de l'intégrer API à l'étape suivante.

Test de la fonction Lambda Calc

Voici comment tester la fonction Calc dans la console Lambda :

  1. Choisissez l’onglet Test.

  2. Entrez comme nom de l'événement de tes calc2plus5.

  3. Remplacez la définition de l'événement de test par ce qui suit :

    { "a": "2", "b": "5", "op": "+" }
  4. Choisissez Save (Enregistrer).

  5. Sélectionnez Test (Tester).

  6. Développez Résultat de l'exécution : réussite. Vous devez voir ce qui suit :

    { "a": 2, "b": 5, "op": "+", "c": 7 }

Créez un Calc API

La procédure suivante montre comment créer un API pour la fonction Calc Lambda que vous venez de créer. Dans les sections suivantes, vous allez y ajouter des ressources et des méthodes.

Pour créer un API
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Si c'est la première fois que vous utilisez API Gateway, une page vous présentant les fonctionnalités du service s'affiche. Sous RESTAPI, choisissez Build. Lorsque la API fenêtre contextuelle Create Example apparaît, cliquez sur OK.

    Si ce n'est pas la première fois que vous utilisez API Gateway, choisissez Create API. Sous RESTAPI, choisissez Build.

  3. Pour APIle nom, entrezLambdaCalc.

  4. (Facultatif) Sous Description, entrez une description.

  5. Conservez le type de API point de terminaison défini sur Régional.

  6. Choisissez Créer API.

Intégration 1 : Création d'une méthode GET avec des paramètres de requête pour appeler la fonction Lambda

En créant une GET méthode qui transmet les paramètres de chaîne de requête à la fonction Lambda, vous permettez API à celle-ci d'être invoquée depuis un navigateur. Cette approche peut être utile, en particulier si APIs elle permet le libre accès.

Après avoir créé unAPI, vous créez une ressource. Généralement, les API ressources sont organisées dans une arborescence de ressources conformément à la logique de l'application. Pour cette étape, vous créez une ressource /calc.

Pour créer une ressource /calc
  1. Choisissez Créer une ressource.

  2. Maintenez Ressource proxy désactivée.

  3. Conservez Chemin de la ressource sous la forme /.

  4. Sous Resource Name (Nom de la ressource), entrez calc.

  5. Maintenez CORS(Cross Origin Resource Sharing) désactivé.

  6. Choisissez Créer une ressource.

En créant une GET méthode qui transmet les paramètres de chaîne de requête à la fonction Lambda, vous permettez API à celle-ci d'être invoquée depuis un navigateur. Cette approche peut être utile, en particulier si APIs elle permet le libre accès.

Dans cette méthode, Lambda exige que la requête POST soit utilisée pour invoquer une fonction Lambda. Cet exemple montre que la HTTP méthode d'une demande de méthode frontale peut être différente de la demande d'intégration du backend.

Pour créer une méthode GET
  1. Sélectionnez la ressource /calc, puis choisissez Créer une méthode.

  2. Pour Type de méthode, sélectionnez GET.

  3. Pour Type d’intégration, sélectionnez AWS service.

  4. Pour Région AWS, sélectionnez l' Région AWS endroit où vous avez créé votre fonction Lambda.

  5. Pour AWS service, sélectionnez Lambda.

  6. Laissez Sous-domaine AWS vide.

  7. Pour la HTTPméthode, sélectionnez POST.

  8. Pour Type d’action, sélectionnez Utiliser un remplacement de chemin. Cette option nous permet de spécifier ARN l'action Invoke pour exécuter notre Calc fonction.

  9. Pour Remplacement de chemin, saisissez 2015-03-31/functions/arn:aws:lambda:us-east-2:account-id:function:Calc/invocations. Pour account-id, entrez votre Compte AWS identifiant. Pourus-east-2, entrez l' Région AWS endroit où vous avez créé votre fonction Lambda.

  10. Pour Rôle d'exécution, entrez le rôle ARN pourlambda_invoke_function_assume_apigw_role.

  11. Ne modifiez pas les paramètres de Cache d’informations d’identification et de Délai d’attente par défaut.

  12. Choisissez les paramètres de demande de méthode.

  13. Pour Validateur de requête, sélectionnez Valider les paramètres de chaîne de requête et les en-têtes.

    Ce paramètre renvoie un message d’erreur si le client ne spécifie pas les paramètres requis.

  14. Choisissez les paramètres de la chaîne de URL requête.

    Vous configurez maintenant les paramètres de chaîne de requête pour la GETméthode sur la ressource /calc afin qu'elle puisse recevoir des entrées au nom de la fonction Lambda principale.

    Pour créer les paramètres de chaîne de requête, procédez comme suit :

    1. Sélectionnez Add query string (Ajouter une chaîne de requêtes).

    2. Pour Name (Nom), saisissez operand1.

    3. Activez Obligatoire.

    4. Maintenez Mise en cache désactivée.

    Répétez les mêmes étapes et créez une chaîne de requête nommée operand2 et une chaîne de requête nommée operator.

  15. Choisissez Créer une méthode.

Maintenant, vous créez un modèle de mappage afin de convertir les chaînes de requête fournies par le client en la charge utile de requête d’intégration, comme requis par la fonction Calc. Ce modèle fait correspondre les trois paramètres de chaîne de requête déclarés dans la demande de méthode aux valeurs de propriété désignées de l'JSONobjet en tant qu'entrée de la fonction Lambda principale. L'JSONobjet transformé sera inclus en tant que charge utile de la demande d'intégration.

Pour mapper les paramètres d’entrée à la requête d’intégration
  1. Dans l’onglet Requête d’intégration, sous Paramètres de requête d’intégration, choisissez Modifier.

  2. Pour Transmission du corps de requête, sélectionnez Lorsqu’aucun modèle n’est défini (recommandé).

  3. Choisissez Modèles de mappage.

  4. Sélectionnez Add mapping template.

  5. Pour Type de contenu, entrez application/json.

  6. Pour Corps du modèle, entrez le code suivant :

    { "a": "$input.params('operand1')", "b": "$input.params('operand2')", "op": "$input.params('operator')" }
  7. Choisissez Save (Enregistrer).

Vous pouvez maintenant tester votre méthode GET pour vérifier qu’elle a été correctement configurée pour invoquer la fonction Lambda.

Pour tester la méthode GET
  1. Choisissez l’onglet Test. Vous devrez peut-être choisir la flèche droite pour afficher l'onglet.

  2. Pour Chaînes de requête, saisissez operand1=2&operand2=3&operator=+.

  3. Sélectionnez Test.

    Les résultats doivent ressembler à ce qui suit :

    Création d'une API passerelle API intégrée en tant que proxy Lambda

Intégration 2 : créer une POST méthode avec une JSON charge utile pour appeler la fonction Lambda

En créant une POST méthode avec une JSON charge utile pour appeler la fonction Lambda, vous faites en sorte que le client doive fournir les entrées nécessaires à la fonction principale dans le corps de la demande. Pour vous assurer que le client charge les données d'entrée correctes, vous allez activer la validation de demande sur la charge utile.

Pour créer une POST méthode avec une JSON charge utile
  1. Sélectionnez la ressource /calc, puis choisissez Créer une méthode.

  2. Pour Type de méthode, sélectionnez POST.

  3. Pour Type d’intégration, sélectionnez AWS service.

  4. Pour Région AWS, sélectionnez l' Région AWS endroit où vous avez créé votre fonction Lambda.

  5. Pour AWS service, sélectionnez Lambda.

  6. Laissez Sous-domaine AWS vide.

  7. Pour la HTTPméthode, sélectionnez POST.

  8. Pour Type d’action, sélectionnez Utiliser un remplacement de chemin. Cette option nous permet de spécifier ARN l'action Invoke pour exécuter notre Calc fonction.

  9. Pour Remplacement de chemin, saisissez 2015-03-31/functions/arn:aws:lambda:us-east-2:account-id:function:Calc/invocations. Pour account-id, entrez votre Compte AWS identifiant. Pourus-east-2, entrez l' Région AWS endroit où vous avez créé votre fonction Lambda.

  10. Pour Rôle d'exécution, entrez le rôle ARN pourlambda_invoke_function_assume_apigw_role.

  11. Ne modifiez pas les paramètres de Cache d’informations d’identification et de Délai d’attente par défaut.

  12. Choisissez Créer une méthode.

Maintenant, vous créez un modèle d’entrée pour décrire la structure des données d’entrée et valider le corps de la requête entrante.

Pour créer un modèle d’entrée
  1. Dans le volet de navigation principal, choisissez Modèles.

  2. Sélectionnez Create model.

  3. Pour Name (Nom), saisissez input.

  4. Pour Type de contenu, entrez application/json.

    Si aucun type de contenu correspondant n'est trouvé, la validation de demande n'est pas effectuée. Pour utiliser le même modèle quel que soit le type de contenu, saisissez $default.

  5. Pour Schéma du modèle, saisissez le modèle qui suit :

    { "type":"object", "properties":{ "a":{"type":"number"}, "b":{"type":"number"}, "op":{"type":"string"} }, "title":"input" }
  6. Sélectionnez Create model.

Vous créez maintenant un modèle de sortie. Ce modèle décrit la structure de données de la sortie calculée à partir du serveur principal. Elle peut être utilisée pour mapper les données de réponse d'intégration à un autre modèle. Ce didacticiel s'appuie sur le comportement de transmission et n'utilise pas ce modèle.

Pour créer un modèle de sortie
  1. Sélectionnez Create model.

  2. Pour Name (Nom), saisissez output.

  3. Pour Type de contenu, entrez application/json.

    Si aucun type de contenu correspondant n'est trouvé, la validation de demande n'est pas effectuée. Pour utiliser le même modèle quel que soit le type de contenu, saisissez $default.

  4. Pour Schéma du modèle, saisissez le modèle qui suit :

    { "type":"object", "properties":{ "c":{"type":"number"} }, "title":"output" }
  5. Sélectionnez Create model.

Vous créez maintenant un modèle de résultat. Ce modèle décrit la structure de données des données de réponse renvoyées. Il fait référence aux schémas d'entrée et de sortie définis dans votreAPI.

Pour créer un modèle de résultat
  1. Sélectionnez Create model.

  2. Pour Name (Nom), saisissez result.

  3. Pour Type de contenu, entrez application/json.

    Si aucun type de contenu correspondant n'est trouvé, la validation de demande n'est pas effectuée. Pour utiliser le même modèle quel que soit le type de contenu, saisissez $default.

  4. Pour Schéma du modèle, entrez le modèle suivant avec votre restapi-id. Votre restapi-id est répertorié entre parenthèses en haut de la console dans le flux suivant : API Gateway > APIs > LambdaCalc (abc123).

    { "type":"object", "properties":{ "input":{ "$ref":"https://apigateway.amazonaws.com/restapis/restapi-id/models/input" }, "output":{ "$ref":"https://apigateway.amazonaws.com/restapis/restapi-id/models/output" } }, "title":"result" }
  5. Sélectionnez Create model.

Vous configurez maintenant la demande de méthode de votre POST méthode pour activer la validation de la demande sur le corps de la demande entrante.

Pour activer la validation des demandes sur la POST méthode
  1. Dans le volet de navigation principal, choisissez Ressources, puis sélectionnez la méthode POST dans l’arborescence de ressources.

  2. Dans l'onglet Demande de méthode, sous Paramètres de demande de méthode, choisissez Modifier.

  3. Pour Validateur de requête, sélectionnez Valider le corps.

  4. Choisissez Corps de la requête, puis choisissez Ajouter un modèle.

  5. Pour Type de contenu, entrez application/json.

    Si aucun type de contenu correspondant n'est trouvé, la validation de demande n'est pas effectuée. Pour utiliser le même modèle quel que soit le type de contenu, saisissez $default.

  6. Pour Modèle, sélectionnez entrée.

  7. Choisissez Save (Enregistrer).

Vous pouvez maintenant tester votre méthode POST pour vérifier qu’elle a été correctement configurée pour invoquer la fonction Lambda.

Pour tester la méthode POST
  1. Choisissez l’onglet Test. Vous devrez peut-être choisir la flèche droite pour afficher l'onglet.

  2. Pour le corps de la demande, entrez la JSON charge utile suivante.

    { "a": 1, "b": 2, "op": "+" }
  3. Sélectionnez Tester).

    Vous devriez voir la sortie suivante :

    { "a": 1, "b": 2, "op": "+", "c": 3 }

Intégration 3 : Création d'une méthode GET avec des paramètres de chemin pour appeler la fonction Lambda

Vous allez maintenant créer une méthode GET sur une ressource spécifiée par une séquence de paramètres de chemin pour appeler la fonction Lambda du backend. Les valeurs de paramètre de chemin spécifient les données d'entrée de la fonction Lambda. Vous allez utiliser un modèle de mappage afin de mapper les valeurs de paramètres de chemin entrantes à la charge utile de demande d'intégration requise.

La structure de API ressources qui en résultera ressemblera à ceci :

Création d'une API passerelle API intégrée en tant que proxy Lambda
Pour créer une ressource /{operand1}/{operand2}/{operator}
  1. Choisissez Créer une ressource.

  2. Pour Chemin de ressource, sélectionnez /calc.

  3. Sous Resource Name (Nom de la ressource), entrez {operand1}.

  4. Maintenez CORS(Cross Origin Resource Sharing) désactivé.

  5. Choisissez Créer une ressource.

  6. Pour Chemin de ressource, sélectionnez /calc/{operand1}/.

  7. Sous Resource Name (Nom de la ressource), entrez {operand2}.

  8. Maintenez CORS(Cross Origin Resource Sharing) désactivé.

  9. Choisissez Créer une ressource.

  10. Pour Chemin de ressource, sélectionnez /calc/{operand1}/{operand2}/.

  11. Sous Resource Name (Nom de la ressource), entrez {operator}.

  12. Maintenez CORS(Cross Origin Resource Sharing) désactivé.

  13. Choisissez Créer une ressource.

Cette fois, vous allez utiliser l'intégration Lambda intégrée dans la console API Gateway pour configurer l'intégration des méthodes.

Pour configurer une intégration de méthode
  1. Sélectionnez la ressource/{operand1}/{operand2}/{operator}, puis choisissez Créer une méthode.

  2. Pour Type de méthode, sélectionnez GET.

  3. Pour Type d'intégration, sélectionnez Lambda

  4. Maintenez Intégration proxy Lambda désactivée.

  5. Pour la fonction Lambda, sélectionnez l' Région AWS endroit où vous avez créé votre fonction Lambda et entrez. Calc

  6. Maintenez Délai d’expiration par défaut activé.

  7. Choisissez Créer une méthode.

Vous créez maintenant un modèle de mappage pour mapper les trois paramètres de URL chemin, déclarés lors de la création de la ressource /calc/ {operand1}/{operand2}/{operator}, aux valeurs de propriété désignées dans l'objet. JSON Comme URL les chemins doivent être URL codés, l'opérateur de division doit être spécifié comme étant %2F au lieu de/. Ce modèle convertit %2F en '/' avant de le transmettre à la fonction Lambda.

Pour créer un modèle de mappage
  1. Dans l’onglet Requête d’intégration, sous Paramètres de requête d’intégration, choisissez Modifier.

  2. Pour Transmission du corps de requête, sélectionnez Lorsqu’aucun modèle n’est défini (recommandé).

  3. Choisissez Modèles de mappage.

  4. Pour Type de contenu, entrez application/json.

  5. Pour Corps du modèle, entrez le code suivant :

    { "a": "$input.params('operand1')", "b": "$input.params('operand2')", "op": #if($input.params('operator')=='%2F')"/"#{else}"$input.params('operator')"#end }
  6. Choisissez Save (Enregistrer).

Vous pouvez maintenant tester votre méthode GET pour vérifier qu’elle a été correctement configurée pour invoquer la fonction Lambda et transmettre le résultat d’origine via la réponse d’intégration sans mappage.

Pour tester la méthode GET
  1. Choisissez l’onglet Test. Vous devrez peut-être choisir la flèche droite pour afficher l'onglet.

  2. Pour Chemin, procédez comme suit :

    1. Pour opérande 1, saisissez 1.

    2. Pour opérande 2, saisissez 1.

    3. Pour opérateur, saisissez +.

  3. Sélectionnez Test.

  4. Le résultat doit se présenter comme suit :

    Testez la GET méthode dans la console API Gateway.

Ensuite, vous modélisez la structure de données de la charge utile de réponse de méthode après le schéma result.

Par défaut, un modèle vide est attribué au corps de réponse de méthode. Cela entraînera la transmission du corps de réponse d'intégration sans mappage. Cependant, lorsque vous générez un SDK pour l'un des langages les plus courants, tels que Java ou Objective-C, vos SDK utilisateurs recevront un objet vide en conséquence. Pour garantir que le REST client et les SDK clients reçoivent le résultat souhaité, vous devez modéliser les données de réponse à l'aide d'un schéma prédéfini. Ici, vous allez définir un modèle pour le corps de réponse de méthode et construire un modèle de mappage pour traduire le corps de réponse d'intégration en corps de réponse de méthode.

Pour créer une réponse de méthode
  1. Dans l’onglet Méthode de réponse, sous Réponse 200, choisissez Modifier.

  2. Sous Corps de la réponse, choisissez Ajouter un modèle.

  3. Pour Type de contenu, entrez application/json.

  4. Pour Modèle, sélectionnez Résultat.

  5. Choisissez Save (Enregistrer).

La définition du modèle pour le corps de réponse de la méthode garantit que les données de réponse seront converties dans l'resultobjet d'une donnéeSDK. Pour vous assurer que les données de réponse d'intégration sont mappées en conséquence, un modèle de mappage est nécessaire.

Pour créer un modèle de mappage
  1. Dans l’onglet Réponse d’intégration, sous Par défaut - Réponse, choisissez Modifier.

  2. Choisissez Modèles de mappage.

  3. Pour Type de contenu, entrez application/json.

  4. Pour Corps du modèle, entrez le code suivant :

    #set($inputRoot = $input.path('$')) { "input" : { "a" : $inputRoot.a, "b" : $inputRoot.b, "op" : "$inputRoot.op" }, "output" : { "c" : $inputRoot.c } }
  5. Choisissez Save (Enregistrer).

Pour tester le modèle de mappage
  1. Choisissez l’onglet Test. Vous devrez peut-être choisir la flèche droite pour afficher l'onglet.

  2. Pour Chemin, procédez comme suit :

    1. Pour opérande 1, saisissez 1.

    2. Pour opérande 2, saisissez 2.

    3. Pour opérateur, saisissez +.

  3. Sélectionnez Tester).

  4. Le résultat ressemble à ce qui suit :

    { "input": { "a": 1, "b": 2, "op": "+" }, "output": { "c": 3 } }

À ce stade, vous pouvez uniquement appeler la API fonction Test de la console API Gateway. Pour le mettre à la disposition des clients, vous devez déployer votreAPI. Assurez-vous de toujours redéployer le vôtre API chaque fois que vous ajoutez, modifiez ou supprimez une ressource ou une méthode, que vous mettez à jour un mappage de données ou que vous mettez à jour les paramètres de stage. Dans le cas contraire, les nouvelles fonctionnalités ou mises à jour ne seront pas disponibles pour vos API clients, comme suit :

Pour déployer l'API
  1. Choisissez DeployAPI (Déployer).

  2. Pour Étape, sélectionnez Nouvelle étape.

  3. Sous Stage name (Nom de l'étape), entrez Prod.

  4. (Facultatif) Sous Description, entrez une description.

  5. Choisissez Deploy (Déployer).

  6. (Facultatif) Sous Détails de l'étapeURL, pour Invoke, vous pouvez choisir l'icône de copie pour copier votre API appelURL. Vous pouvez l'utiliser avec des outils tels que Postman et c URL pour tester votreAPI.

Note

Redéployez toujours le vôtre API chaque fois que vous ajoutez, modifiez ou supprimez une ressource ou une méthode, que vous mettez à jour un mappage de données ou que vous mettez à jour les paramètres de stage. Dans le cas contraire, les nouvelles fonctionnalités ou mises à jour ne seront pas disponibles pour vos clientsAPI.