

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.

# Mappage des paramètres pour REST APIs dans API Gateway
<a name="rest-api-parameter-mapping"></a>

**Note**  
Si vous utilisez une API HTTP, consultez [Transformation des demandes et des réponses d’API HTTP dans API Gateway](http-api-parameter-mapping.md).

Dans le mappage de paramètres, vous mappez les paramètres de la demande ou de la réponse. Vous pouvez mapper des paramètres à l’aide d’expressions de mappage de paramètres ou de valeurs statiques. Pour obtenir la liste des expressions de mappage, consultez [Référence de source de mappage de paramètres pour REST APIs dans API Gateway](rest-api-parameter-mapping-sources.md). Vous pouvez utiliser le mappage de paramètres dans votre demande d’intégration pour les intégrations proxy et sans proxy. En revanche, pour utiliser le mappage de paramètres dans une réponse d’intégration, vous avez besoin d’une intégration sans proxy.

Par exemple, vous pouvez mapper le paramètre d’en-tête `puppies` de la demande de méthode au paramètre d’en-tête `DogsAge0` de la demande d’intégration. Si un client envoie l’en-tête `puppies:true` à votre API, la demande d’intégration envoie alors l’en-tête de demande `DogsAge0:true` au point de terminaison d’intégration. Le schéma suivant illustre le cycle de vie de la demande de cet exemple.

![\[Schéma d’un exemple de mappage des paramètres d’API Gateway pour une demande\]](http://docs.aws.amazon.com/fr_fr/apigateway/latest/developerguide/images/parameter-mapping-example1.png)


Pour créer cet exemple à l’aide d’API Gateway, consultez [Exemple 1 : association d’un paramètre de demande de méthode à un paramètre de demande d’intégration](request-response-data-mappings.md#request-response-data-mappings-example-1).

 Autre exemple, vous pouvez également mapper le paramètre d’en-tête de réponse d’intégration `kittens` au paramètre d’en-tête de réponse de méthode`CatsAge0`. Ensuite, si le point de terminaison d’intégration renvoie `kittens:false`, le client reçoit l’en-tête `CatsAge0:false`. Le schéma suivant illustre le cycle de vie de la demande de cet exemple.

![\[Schéma d’un exemple de mappage de paramètres API Gateway pour une réponse\]](http://docs.aws.amazon.com/fr_fr/apigateway/latest/developerguide/images/parameter-mapping-example2.png)


**Topics**
+ [Exemples de mappage de paramètres pour REST APIs dans API Gateway](request-response-data-mappings.md)
+ [Référence de source de mappage de paramètres pour REST APIs dans API Gateway](rest-api-parameter-mapping-sources.md)

# Exemples de mappage de paramètres pour REST APIs dans API Gateway
<a name="request-response-data-mappings"></a>

Les exemples suivants montrent comment créer des expressions de mappage de paramètres à l’aide de la console API Gateway, d’OpenAPI et de modèles CloudFormation . Pour voir un exemple d’utilisation du mappage de paramètres dans le but de créer les en-têtes CORS requis, consultez [CORS pour REST APIs dans API Gateway](how-to-cors.md). 

## Exemple 1 : association d’un paramètre de demande de méthode à un paramètre de demande d’intégration
<a name="request-response-data-mappings-example-1"></a>

L’exemple suivant mappe le paramètre d’en-tête `puppies` de la demande de méthode au paramètre d’en-tête `DogsAge0` de la demande d’intégration. 

------
#### [ AWS Management Console ]

**Pour mapper le paramètre de la demande de méthode**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Choisissez une API REST.

1. Choisissez une méthode.

   Votre méthode doit avoir une intégration sans proxy.

1. Pour **Paramètres de requête de méthode**, choisissez **Modifier**.

1. Développez **En-têtes de demande HTTP**.

1. Sélectionnez **Add header**.

1. Pour **Nom**, saisissez **puppies**.

1. Choisissez **Enregistrer**.

1. Choisissez l’onglet **Requête d’intégration**, puis dans la section **Paramètres de requête d’intégration**, choisissez **Modifier**.

   Ajoute AWS Management Console automatiquement un mappage de paramètres de `method.request.header.puppies ` à `puppies` pour vous, mais vous devez modifier le **nom** pour qu'il corresponde au paramètre d'en-tête de demande attendu par votre point de terminaison d'intégration.

1. Pour **Nom**, saisissez **DogsAge0**.

1. Choisissez **Enregistrer**.

1. Redéployez l’API pour que les modifications prennent effet.

Les étapes suivantes montrent comment vérifier que votre mappage de paramètres a été effectué avec succès.

**(Facultatif) Testez votre mappage de paramètres.**

1. Choisissez l’onglet **Test**. Vous devrez peut-être choisir la flèche droite pour afficher l’onglet.

1. Pour les en-têtes, saisissez **puppies:true**.

1. Sélectionnez **Tester)**.

1. Dans **Journaux**, le résultat doit se présenter comme suit :

   ```
   Tue Feb 04 00:28:36 UTC 2025 : Method request headers: {puppies=true}
   Tue Feb 04 00:28:36 UTC 2025 : Method request body before transformations: 
   Tue Feb 04 00:28:36 UTC 2025 : Endpoint request URI: http://petstore-demo-endpoint.execute-api.com/petstore/pets
   Tue Feb 04 00:28:36 UTC 2025 : Endpoint request headers: {DogsAge0=true, x-amzn-apigateway-api-id=abcd1234, Accept=application/json, User-Agent=AmazonAPIGateway_aaaaaaa, X-Amzn-Trace-Id=Root=1-abcd-12344}
   ```

   Le paramètre d’en-tête de la demande est passé de `puppies` à `DogsAge0`.

------
#### [ CloudFormation ]

 Dans cet exemple, vous allez utiliser la propriété [body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) pour importer un fichier de définition OpenAPI dans API Gateway. 

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  Api:
    Type: 'AWS::ApiGateway::RestApi'
    Properties:
      Body:
        openapi: 3.0.1
        info:
          title: ParameterMappingExample
          version: "2025-02-04T00:30:41Z"
        paths:
          /pets:
            get:
              parameters:
                - name: puppies
                  in: header
                  schema:
                    type: string
              responses:
                "200":
                  description: 200 response
              x-amazon-apigateway-integration:
                httpMethod: GET
                uri: http://petstore-demo-endpoint.execute-api.com/petstore/pets
                responses:
                  default:
                    statusCode: "200"
                requestParameters:
                  integration.request.header.DogsAge0: method.request.header.puppies
                passthroughBehavior: when_no_match
                type: http
  ApiGatewayDeployment:
    Type: 'AWS::ApiGateway::Deployment'
    DependsOn: Api 
    Properties: 
      RestApiId: !Ref Api
  ApiGatewayDeployment20250219:
    Type: 'AWS::ApiGateway::Deployment'
    DependsOn: Api 
    Properties: 
      RestApiId: !Ref Api
  Stage:
    Type: 'AWS::ApiGateway::Stage'
    Properties:
       DeploymentId: !Ref ApiGatewayDeployment20250219
       RestApiId: !Ref Api
       StageName: prod
```

------
#### [ OpenAPI ]

```
{
  "openapi" : "3.0.1",
  "info" : {
    "title" : "ParameterMappingExample",
    "version" : "2025-02-04T00:30:41Z"
  },
  "paths" : {
    "/pets" : {
      "get" : {
        "parameters" : [ {
          "name" : "puppies",
          "in" : "header",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "200 response"
          }
        },
        "x-amazon-apigateway-integration" : {
          "httpMethod" : "GET",
          "uri" : "http://petstore-demo-endpoint.execute-api.com/petstore/pets",
          "responses" : {
            "default" : {
              "statusCode" : "200"
            }
          },
          "requestParameters" : {
            "integration.request.header.DogsAge0" : "method.request.header.puppies"
          },
          "passthroughBehavior" : "when_no_match",
          "type" : "http"
        }
      }
    }
  }
}
```

------

## Exemple 2 : association de plusieurs paramètres de requête de méthode à différents paramètres de demande d’intégration
<a name="request-response-data-mappings-example-2"></a>

L’exemple suivant mappe le paramètre `methodRequestQueryParam` de la chaîne de requête de méthode à valeurs multiples au paramètre `integrationQueryParam` de la chaîne de requête de demande d’intégration, et mappe le paramètre d’en-tête `methodRequestHeaderParam` de la demande de méthode au paramètre de chemin `integrationPathParam` de la demande d’intégration.

------
#### [ AWS Management Console ]

**Pour mapper les paramètres de requête de méthode**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Choisissez une API REST.

1. Choisissez une méthode.

   Votre méthode doit avoir une intégration sans proxy.

1. Pour **Paramètres de requête de méthode**, choisissez **Modifier**.

1. Choisissez **Paramètres de chaîne de requête d’URL**.

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

1. Pour **Nom**, saisissez **methodRequestQueryParam**.

1. Développez **En-têtes de demande HTTP**.

1. Sélectionnez **Add header**.

1. Pour **Nom**, saisissez **methodRequestHeaderParam**.

1. Choisissez **Enregistrer**.

1. Choisissez l’onglet **Requête d’intégration**, puis dans la section **Paramètres de requête d’intégration**, choisissez **Modifier**.

1. Choisissez **paramètres de chemin d’URL**.

1. Choisissez **Ajouter un paramètre de chemin**.

1. Pour **Nom**, saisissez **integrationPathParam**.

1. Pour **Mappage à partir de**, entrez **method.request.header.methodRequestHeaderParam**.

   Cette opération mappe l’en-tête de demande de méthode que vous avez spécifié dans la demande de méthode à un nouveau paramètre de chemin de la demande d’intégration.

1. Choisissez **Paramètres de chaîne de requête d’URL**.

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

1. Pour **Nom**, saisissez **integrationQueryParam**.

1. Pour **Mappage à partir de**, entrez **method.request.multivaluequerystring.methodRequestQueryParam**.

   Cette opération mappe le paramètre de chaîne de requête à valeurs multiples à un nouveau paramètre de chaîne de requête de demande d’intégration à valeur unique.

1. Choisissez **Enregistrer**.

1. Redéployez l’API pour que les modifications prennent effet.

------
#### [ CloudFormation ]

 Dans cet exemple, vous allez utiliser la propriété [body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) pour importer un fichier de définition OpenAPI dans API Gateway. 

La définition OpenAPI suivante crée les mappages de paramètres suivants pour une intégration HTTP :
+ l’en-tête de la demande de méthode, nommé `methodRequestHeaderParam`, avec le paramètre de chemin de la demande d’intégration, nommé `integrationPathParam` ;
+ la chaîne de requête de la demande de méthode à valeurs multiples, nommée `methodRequestQueryParam`, avec la chaîne de requête de la demande d’intégration, nommée `integrationQueryParam`.

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  Api:
    Type: 'AWS::ApiGateway::RestApi'
    Properties:
      Body: 
        openapi: 3.0.1
        info:
          title: Parameter mapping example 2
          version: "2025-01-15T19:12:31Z"
        paths:
          /:
            post:
              parameters:
                - name: methodRequestQueryParam
                  in: query
                  schema:
                    type: string
                - name: methodRequestHeaderParam
                  in: header
                  schema:
                    type: string
              responses:
                "200":
                  description: 200 response
              x-amazon-apigateway-integration:
                httpMethod: GET
                uri: http://petstore-demo-endpoint.execute-api.com/petstore/pets
                responses:
                  default:
                    statusCode: "200"
                requestParameters:
                  integration.request.querystring.integrationQueryParam: method.request.multivaluequerystring.methodRequestQueryParam
                  integration.request.path.integrationPathParam: method.request.header.methodRequestHeaderParam
                requestTemplates:
                  application/json: '{"statusCode": 200}'
                passthroughBehavior: when_no_templates
                timeoutInMillis: 29000
                type: http
  ApiGatewayDeployment:
    Type: 'AWS::ApiGateway::Deployment'
    DependsOn: Api 
    Properties: 
      RestApiId: !Ref Api
  ApiGatewayDeployment20250219:
    Type: 'AWS::ApiGateway::Deployment'
    DependsOn: Api 
    Properties: 
      RestApiId: !Ref Api
  Stage:
    Type: 'AWS::ApiGateway::Stage'
    Properties:
       DeploymentId: !Ref ApiGatewayDeployment20250219
       RestApiId: !Ref Api
       StageName: prod
```

------
#### [ OpenAPI ]

La définition OpenAPI suivante crée les mappages de paramètres suivants pour une intégration HTTP :
+ l’en-tête de la demande de méthode, nommé `methodRequestHeaderParam`, avec le paramètre de chemin de la demande d’intégration, nommé `integrationPathParam` ;
+ la chaîne de requête de la demande de méthode à valeurs multiples, nommée `methodRequestQueryParam`, avec la chaîne de requête de la demande d’intégration, nommée `integrationQueryParam`.

```
{
  "openapi" : "3.0.1",
  "info" : {
    "title" : "Parameter mapping example 2",
    "version" : "2025-01-15T19:12:31Z"
  },
  "paths" : {
    "/" : {
      "post" : {
        "parameters" : [ {
          "name" : "methodRequestQueryParam",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "methodRequestHeaderParam",
          "in" : "header",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "200 response"
          }
        },
        "x-amazon-apigateway-integration" : {
          "httpMethod" : "GET",
          "uri" : "http://petstore-demo-endpoint.execute-api.com/petstore/pets",
          "responses" : {
            "default" : {
              "statusCode" : "200"
            }
          },
          "requestParameters" : {
            "integration.request.querystring.integrationQueryParam" : "method.request.multivaluequerystring.methodRequestQueryParam",
            "integration.request.path.integrationPathParam" : "method.request.header.methodRequestHeaderParam"
          },
          "requestTemplates" : {
            "application/json" : "{\"statusCode\": 200}"
          },
          "passthroughBehavior" : "when_no_templates",
          "timeoutInMillis" : 29000,
          "type" : "http"
        }
      }
    }
  }
}
```

------

## Exemple 3 : mappage de champs du corps de la demande JSON aux paramètres de la demande d’intégration
<a name="request-response-data-mappings-example-3"></a>

Vous pouvez également mapper les paramètres de demande d'intégration à partir des champs du corps de la demande JSON à l'aide d'une [JSONPath expression](http://goessner.net/articles/JsonPath/index.html#e2). L’exemple suivant mappe le corps de la demande de méthode à un en-tête de la demande d’intégration nommé `body-header`, et mappe une partie du corps de la demande, tel qu’il est exprimé par une expression JSON, à un en-tête de la demande d’intégration nommé `pet-price`.

Pour tester cet exemple, fournissez une entrée contenant une catégorie de prix, par exemple :

```
[ 
  { 
    "id": 1, 
    "type": "dog", 
    "price": 249.99 
  }
]
```

------
#### [ AWS Management Console ]

**Pour mapper les paramètres de requête de méthode**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Choisissez une API REST.

1. Choisissez la méthode `POST`, `PUT`, `PATCH` ou `ANY`.

   Votre méthode doit avoir une intégration sans proxy.

1. Pour **Paramètres de requête d’intégration**, choisissez **Modifier**.

1. Sélectionnez **Paramètres des en-têtes de requête d’URL**.

1. Sélectionnez **Ajouter un paramètre d’en-tête de requête**.

1. Pour **Nom**, saisissez **body-header**.

1. Pour **Mappage à partir de**, entrez **method.request.body**.

   Cette opération mappe le corps de la demande de méthode à un nouveau paramètre d’en-tête de la demande d’intégration.

1. Sélectionnez **Ajouter un paramètre d’en-tête de requête**.

1. Pour **Nom**, saisissez **pet-price**.

1. Pour **Mappage à partir de**, entrez ** method.request.body[0].price**.

   Cette opération mappe une partie du corps de la demande de méthode à un nouveau paramètre d’en-tête de la demande d’intégration.

1. Choisissez **Enregistrer**.

1. Redéployez l’API pour que les modifications prennent effet.

------
#### [ CloudFormation ]

 Dans cet exemple, vous allez utiliser la propriété [body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) pour importer un fichier de définition OpenAPI dans API Gateway. 

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  Api:
    Type: 'AWS::ApiGateway::RestApi'
    Properties:
      Body: 
        openapi: 3.0.1
        info:
          title: Parameter mapping example 3
          version: "2025-01-15T19:19:14Z"
        paths:
          /:
            post:
              responses:
                "200":
                  description: 200 response
              x-amazon-apigateway-integration:
                httpMethod: GET
                uri: http://petstore-demo-endpoint.execute-api.com/petstore/pets
                responses:
                  default:
                    statusCode: "200"
                requestParameters:
                  integration.request.header.pet-price: method.request.body[0].price
                  integration.request.header.body-header: method.request.body
                requestTemplates:
                  application/json: '{"statusCode": 200}'
                passthroughBehavior: when_no_templates
                timeoutInMillis: 29000
                type: http
  ApiGatewayDeployment:
    Type: 'AWS::ApiGateway::Deployment'
    DependsOn: Api 
    Properties: 
      RestApiId: !Ref Api
  ApiGatewayDeployment20250219:
    Type: 'AWS::ApiGateway::Deployment'
    DependsOn: Api 
    Properties: 
      RestApiId: !Ref Api
  Stage:
    Type: 'AWS::ApiGateway::Stage'
    Properties:
       DeploymentId: !Ref ApiGatewayDeployment20250219
       RestApiId: !Ref Api
       StageName: prod
```

------
#### [ OpenAPI ]

La définition OpenAPI suivante mappe les paramètres de la demande d’intégration à partir des champs du corps de la demande JSON.

```
{
  "openapi" : "3.0.1",
  "info" : {
    "title" : "Parameter mapping example 3",
    "version" : "2025-01-15T19:19:14Z"
  },
  "paths" : {
    "/" : {
      "post" : {
        "responses" : {
          "200" : {
            "description" : "200 response"
          }
        },
        "x-amazon-apigateway-integration" : {
          "httpMethod" : "GET",
          "uri" : "http://petstore-demo-endpoint.execute-api.com/petstore/pets",
          "responses" : {
            "default" : {
              "statusCode" : "200"
            }
          },
          "requestParameters" : {
            "integration.request.header.pet-price" : "method.request.body[0].price",
            "integration.request.header.body-header" : "method.request.body"
          },
          "requestTemplates" : {
            "application/json" : "{\"statusCode\": 200}"
          },
          "passthroughBehavior" : "when_no_templates",
          "timeoutInMillis" : 29000,
          "type" : "http"
        }
      }
    }
  }
}
```

------

## Exemple 4 : mappage de la réponse d’intégration à la réponse de méthode
<a name="request-response-data-mappings-example-4"></a>

Vous pouvez également mapper la réponse d’intégration à la réponse de méthode. L’exemple suivant mappe le corps de la réponse d’intégration à un en-tête de la réponse de méthode nommé `location`, mappe l’en-tête `x-app-id` de la réponse d’intégration à l’en-tête `id` de la réponse de méthode, et mappe l’en-tête à valeurs multiples `item` de la réponse d’intégration à l’en-tête `items` de la réponse de méthode.

------
#### [ AWS Management Console ]

**Pour mapper la réponse d’intégration**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Choisissez une API REST.

1. Choisissez une méthode.

   Votre méthode doit avoir une intégration sans proxy.

1. Choisissez l’onglet **Méthode de réponse**, puis pour **Réponse 200**, sélectionnez **Modifier**.

1. Sous **Nom de l’en-tête**, choisissez **Ajouter un en-tête**.

1. Créez trois en-têtes nommés **id**, **item** et **location**.

1. Choisissez **Enregistrer**.

1. Choisissez l’onglet **Réponse d’intégration**, puis pour **Par défaut - Réponse**, choisissez **Modifier**.

1. Sous **Mappages d’en-tête**, saisissez ce qui suit.

   1. Sous **ID**, saisissez **integration.response.header.x-app-id**.

   1. Sous **Élément**, saisissez **integration.response.multivalueheader.item**.

   1. Sous **Emplacement**, saisissez **integration.response.body.redirect.url**.

1. Choisissez **Enregistrer**.

1. Redéployez l’API pour que les modifications prennent effet.

------
#### [ CloudFormation ]

 Dans cet exemple, vous allez utiliser la propriété [body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) pour importer un fichier de définition OpenAPI dans API Gateway. 

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  Api:
    Type: 'AWS::ApiGateway::RestApi'
    Properties:
      Body:
        openapi: 3.0.1
        info:
          title: Parameter mapping example
          version: "2025-01-15T19:21:35Z"
        paths:
          /:
            post:
              responses:
                "200":
                  description: 200 response
                  headers:
                    item:
                      schema:
                        type: string
                    location:
                      schema:
                        type: string
                    id:
                      schema:
                        type: string
              x-amazon-apigateway-integration:
                type: http
                httpMethod: GET
                uri: http://petstore-demo-endpoint.execute-api.com/petstore/pets
                responses:
                  default:
                    statusCode: "200"
                    responseParameters:
                      method.response.header.id: integration.response.header.x-app-id
                      method.response.header.location: integration.response.body.redirect.url
                      method.response.header.item: integration.response.multivalueheader.item
                requestTemplates:
                  application/json: '{"statusCode": 200}'
                passthroughBehavior: when_no_templates
                timeoutInMillis: 29000
  ApiGatewayDeployment:
    Type: 'AWS::ApiGateway::Deployment'
    DependsOn: Api 
    Properties: 
      RestApiId: !Ref Api
  ApiGatewayDeployment20250219:
    Type: 'AWS::ApiGateway::Deployment'
    DependsOn: Api 
    Properties: 
      RestApiId: !Ref Api
  Stage:
    Type: 'AWS::ApiGateway::Stage'
    Properties:
       DeploymentId: !Ref ApiGatewayDeployment20250219
       RestApiId: !Ref Api
       StageName: prod
```

------
#### [ OpenAPI ]

La définition d’OpenAPI suivante mappe la réponse d’intégration à la réponse de méthode.

```
{
  "openapi" : "3.0.1",
  "info" : {
    "title" : "Parameter mapping example",
    "version" : "2025-01-15T19:21:35Z"
  },
  "paths" : {
    "/" : {
      "post" : {
        "responses" : {
          "200" : {
            "description" : "200 response",
            "headers" : {
              "item" : {
                "schema" : {
                  "type" : "string"
                }
              },
              "location" : {
                "schema" : {
                  "type" : "string"
                }
              },
              "id" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          }
        },
        "x-amazon-apigateway-integration" : {
          "type" : "http",
          "httpMethod" : "GET",
          "uri" : "http://petstore-demo-endpoint.execute-api.com/petstore/pets",
          "responses" : {
            "default" : {
              "statusCode" : "200",
              "responseParameters" : {
                "method.response.header.id" : "integration.response.header.x-app-id",
                "method.response.header.location" : "integration.response.body.redirect.url",
                "method.response.header.item" : "integration.response.multivalueheader.item"
              }
            }
          },
          "requestTemplates" : {
            "application/json" : "{\"statusCode\": 200}"
          },
          "passthroughBehavior" : "when_no_templates",
          "timeoutInMillis" : 29000
        }
      }
    }
  }
}
```

------

# Référence de source de mappage de paramètres pour REST APIs dans API Gateway
<a name="rest-api-parameter-mapping-sources"></a>

Lorsque vous créez un mappage de paramètres, vous spécifiez les paramètres de demande de méthode ou de réponse d’intégration à modifier, et indiquez comment modifier ces paramètres.

Le tableau suivant indique les paramètres de requête de méthode que vous pouvez mapper, ainsi que l’expression permettant ce mappage. Dans ces expressions, *name* est le nom d'un paramètre de demande de méthode. Par exemple, pour mapper le paramètre d’en-tête de demande `puppies`, utilisez l’expression `method.request.header.puppies`. Votre expression doit respecter le modèle d’expression régulière `'^[a-zA-Z0-9._$-]+$]'`. Vous pouvez utiliser le mappage de paramètres dans votre demande d’intégration pour des intégrations avec ou sans proxy. 


| **Source de données mappée** | **Expression de mappage** | 
| --- | --- | 
| Chemin de la demande de méthode | method.request.path.name | 
| Chaîne de requête de la demande de méthode | method.request.querystring.name | 
| Chaîne de requête de la demande de méthode à valeurs multiples | method.request.multivaluequerystring.name | 
| En-tête de la demande de méthode | method.request.header.name | 
| En-tête de demande de méthode à valeurs multiples | method.request.multivalueheader.name | 
| Corps de la demande de méthode | method.request.body | 
| corps de la demande de méthode (JsonPath) | `method.request.body.JSONPath_EXPRESSION`. *JSONPath\$1EXPRESSION*est une JSONPath expression pour un champ JSON du corps d'une demande. Pour plus d'informations, voir [JSONPath expression](http://goessner.net/articles/JsonPath/index.html#e2).  | 
| Variables d’étape | stageVariables.name | 
| Variables de contexte |  `context.name` Le nom doit être l’une des [variables de contexte prises en charge](api-gateway-mapping-template-reference.md#context-variable-reference). | 
| Valeur statique | `'static_value'`. *static\$1value*Il s'agit d'une chaîne littérale qui doit être placée entre guillemets simples. Par exemple, `'https://www.example.com'`. | 

Le tableau suivant indique les paramètres de réponse d’intégration que vous pouvez mapper, ainsi que l’expression permettant ce mappage. Dans ces expressions, *name* est le nom d'un paramètre de réponse d'intégration. Vous pouvez mapper les paramètres d’en-tête d’une réponse de méthode à partir de n’importe quel en-tête ou corps de réponse d’intégration, de variables \$1context ou de valeurs statiques. Pour utiliser le mappage de paramètres pour une réponse d’intégration, il vous faut une intégration sans proxy.


| Source de données mappée | Expression de mappage | 
| --- | --- | 
| En-tête de réponse d’intégration | integration.response.header.name | 
| En-tête de réponse d’intégration | integration.response.multivalueheader.name | 
| Corps de réponse intégration | integration.response.body | 
| Organisme de réponse à l'intégration (JsonPath) | `integration.response.body.JSONPath_EXPRESSION` *JSONPath\$1EXPRESSION*est une JSONPath expression pour un champ JSON du corps d'une réponse. Pour plus d'informations, voir [JSONPath expression](http://goessner.net/articles/JsonPath/index.html#e2). | 
| Variable d’étape | stageVariables.name | 
| Variable de contexte |  `context.name` Le nom doit être l’une des [variables de contexte prises en charge](api-gateway-mapping-template-reference.md#context-variable-reference). | 
| Valeur statique | ` 'static_value'` *static\$1value*Il s'agit d'une chaîne littérale qui doit être placée entre guillemets simples. Par exemple, `'https://www.example.com'`. | 