

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
<a name="simple-calc-lambda-api"></a>

Notre API de calculatrice simple expose trois méthodes (GET, POST, GET) pour appeler la fonction [Fonction Lambda de calculatrice simple](simple-calc-nodejs-lambda-function.md). Une représentation graphique de cette API se présente comme suit :

![\[API de calculatrice simple pour le kit SDK généré\]](http://docs.aws.amazon.com/fr_fr/apigateway/latest/developerguide/images/simple-calc-api-console-hierarchy-new-console.png)


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`. L'individu SDKs peut 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](https://docs.aws.amazon.com/apigateway/latest/api/API_Method.html#operationName) sur chaque méthode de l'API. Vous pouvez le faire lors de la [création de la méthode d'API](https://docs.aws.amazon.com/apigateway/latest/api/API_PutMethod.html) ou de la [mise à jour de la méthode d'API](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateMethod.html) à 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](rest-api-develop.md). Si vous débutez avec API Gateway, veuillez d'abord consulter [Choisissez un didacticiel AWS Lambda d'intégration](getting-started-with-lambda-integration.md).

## Création des modèles d'entrée et de sortie
<a name="simple-calc-lambda-api-create-models-for-input-and-output"></a>

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**

1. Dans le volet de navigation principal, choisissez **Modèles**.

1. Sélectionnez **Créer un modèle**.

1. Pour **Nom**, saisissez **input**.

1. 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 **\$1default**.

1. 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"
   }
   ```

1. Sélectionnez **Créer un modèle**.

1. Répétez les étapes suivantes pour créer un modèle `Output` et un modèle `Result`.

   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’API `abc123` 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 /
<a name="simple-calc-lambda-api-set-up-get-method-query-parameters"></a>

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**

1. Dans la section **Requête de méthode** pour la méthode `GET` sur la ressource racine (`/`), choisissez **Modifier**.

1. Choisissez **Paramètres de chaîne de requête d’URL** et procédez comme suit :

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

   1. Pour **Nom**, saisissez **a**.

   1. Gardez **Obligatoire** et **Mise en cache** désactivés. 

   1. 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ée **op**.

1. Choisissez **Enregistrer**.

## Configuration du modèle de données pour la charge utile en tant qu'entrée du backend
<a name="simple-calc-lambda-api-set-up-post-method-body-data-type"></a>

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**

1. Dans la section **Requête de méthode** pour la méthode `POST` sur la ressource racine (`/`), choisissez **Modifier**.

1. Choisissez **Corps de la requête**.

1. Choisissez **Add model**.

1. Pour **Type de contenu**, entrez **application/json**.

1. Pour **Modèle**, sélectionnez **Entrée**.

1. 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
<a name="simple-calc-lambda-api-set-up-all-methods-result-data-type"></a>

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**

1. Sélectionnez la ressource**/\$1a\$1/\$1b\$1/\$1op\$1**, puis choisissez la méthode **GET**.

1. Dans l’onglet **Méthode de réponse**, sous **Réponse 200**, choisissez **Modifier**.

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

1. Pour **Type de contenu**, entrez **application/json**.

1. Pour **Modèle**, sélectionnez **Résultat**.

1. 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. 