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.
API de calculatrice simple dans API Gateway
Notre API de calculatrice simple expose trois méthodes (GET, POST, GET) pour appeler la fonction Fonction Lambda de calculatrice simple. Une représentation graphique de cette API se présente comme suit :
Ces trois méthodes décrivent les différentes façons de fournir l'entrée à la fonction Lambda backend pour qu'elle effectue la même opération :
-
La méthode
GET /?a=...&b=...&op=...
utilise les paramètres de requête pour spécifier l'entrée. -
La méthode
POST /
utilise une charge utile JSON{"a":"Number", "b":"Number", "op":"string"}
pour spécifier l'entrée. -
La méthode
GET /{a}/{b}/{op}
utilise les paramètres de chemin pour spécifier l'entrée.
Si celle-ci n'est pas définie, API Gateway génère le nom de méthode du kit SDK correspondant en combinant les parties de la méthode et du chemin d'accès HTTP. La partie du chemin d'accès racine (/
) est appelé Api
Root
. Par exemple, le nom de la méthode du kit SDK Java par défaut pour la méthode d'API de GET /?a=...&b=...&op=...
est getABOp
, le nom de la méthode du kit SDK par défaut de POST /
est postApiRoot
, et le nom de la méthode du kit SDK par défaut de GET /{a}/{b}/{op}
est getABOp
. Des kits SDK individuels peuvent personnaliser la convention. Consultez la documentation dans la source du kit SDK généré pour connaître les noms de méthode spécifiques aux kits SDK.
Vous pouvez, et devez, remplacer les noms de méthode du kit SDK par défaut en définissant la propriété operationName sur chaque méthode de l'API. Vous pouvez le faire lors de la création de la méthode d'API ou de la mise à jour de la méthode d'API à l'aide de l'API REST API Gateway. Dans la définition Swagger d'API, vous pouvez définir operationId
pour obtenir le même résultat.
Avant de montrer comment appeler ces méthodes à l'aide d'un kit SDK généré par API Gateway pour cette API, rappelons rapidement comment les configurer. Pour obtenir des instructions complètes, veuillez consulter Développez REST APIs dans API Gateway. Si vous débutez avec API Gateway, veuillez d'abord consulter Choisissez un didacticiel AWS Lambda d'intégration.
Création des modèles d'entrée et de sortie
Pour spécifier une entrée fortement typée dans le kit SDK, nous créons un modèle Input
pour l’API : Pour décrire le type de données du corps de la réponse, nous créons un modèle Output
et un modèle Result
.
Pour créer des modèles pour l’entrée, la sortie et le résultat
-
Dans le volet de navigation principal, choisissez Modèles.
-
Sélectionnez Create model.
-
Pour Name (Nom), saisissez
input
. -
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
. -
Pour Schéma du modèle, saisissez le modèle qui suit :
{ "$schema" : "$schema": "http://json-schema.org/draft-04/schema#", "type":"object", "properties":{ "a":{"type":"number"}, "b":{"type":"number"}, "op":{"type":"string"} }, "title":"Input" }
Sélectionnez Create model.
Répétez les étapes suivantes pour créer un modèle
Output
et un modèleResult
.Pour le modèle
Output
, saisissez ce qui suit pour Schéma du modèle :{ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "c": {"type":"number"} }, "title": "Output" }
Pour le modèle
Result
, saisissez ce qui suit pour Schéma du modèle : Remplacez l’ID d’APIabc123
par votre ID d’API.{ "$schema": "http://json-schema.org/draft-04/schema#", "type":"object", "properties":{ "input":{ "$ref":"https://apigateway.amazonaws.com/restapis/abc123/models/Input" }, "output":{ "$ref":"https://apigateway.amazonaws.com/restapis/abc123/models/Output" } }, "title":"Result" }
Configuration des paramètres de requête de la méthode GET /
Pour la méthode GET /?a=..&b=..&op=..
, les paramètres de requête sont déclarés dans Method Request :
Pour configurer les paramètres de chaîne de requête GET / URL
Dans la section Requête de méthode pour la méthode
GET
sur la ressource racine (/
), choisissez Modifier.Choisissez Paramètres de chaîne de requête d'URL et procédez comme suit :
Sélectionnez Add query string (Ajouter une chaîne de requêtes).
Pour Name (Nom), saisissez
a
.Gardez Obligatoire et Mise en cache désactivés.
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
b
et une chaîne de requête nomméeop
.Choisissez Enregistrer.
Configuration du modèle de données pour la charge utile en tant qu'entrée du backend
Pour la méthode POST /
, nous créons le modèle Input
et l'ajoutons à la méthode de demande pour définir la forme des données d'entrée.
Pour configurer le modèle de données pour la charge utile en tant qu’entrée du backend
Dans la section Requête de méthode pour la méthode
POST
sur la ressource racine (/
), choisissez Modifier.Choisissez Corps de la requête.
Choisissez Add model.
Pour Type de contenu, entrez
application/json
.Pour Modèle, sélectionnez Entrée.
Choisissez Enregistrer.
Avec ce modèle, vos clients d'API peuvent appeler le kit SDK pour spécifier l'entrée en instanciant un objet Input
. Sans ce modèle, vos clients devront créer un objet de dictionnaire pour représenter l'entrée JSON à la fonction Lambda.
Configuration du modèle de données pour la sortie Résultat depuis le backend
Pour les trois méthodes, nous créons le modèle Result
et l'ajoutons à la Method Response
de la méthode pour définir la forme de sortie renvoyée par la fonction Lambda.
Pour configurer le modèle de données pour la sortie Résultat depuis le backend
Sélectionnez la ressource/{a}/{b}/{op}, puis choisissez la méthode GET.
-
Dans l’onglet Méthode de réponse, sous Réponse 200, choisissez Modifier.
-
Sous Corps de la réponse, choisissez Ajouter un modèle.
-
Pour Type de contenu, entrez
application/json
. -
Pour Modèle, sélectionnez Résultat.
-
Choisissez Enregistrer.
Avec ce modèle, vos clients d'API peuvent analyser une sortie positive par la lecture des propriétés d'un objet Result
. Sans ce modèle, les clients devront créer un objet de dictionnaire pour représenter la sortie JSON.