

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Mappatura dei parametri per REST APIs in API Gateway
<a name="rest-api-parameter-mapping"></a>

**Nota**  
Se si utilizza un’API HTTP, consultare [Trasformazione delle richieste e delle risposte API per API HTTP in Gateway API](http-api-parameter-mapping.md).

Nella mappatura dei parametri si mappano i parametri della richiesta o della risposta. È possibile mappare i parametri utilizzando valori statici o espressioni di mappatura dei parametri. Per l’elenco delle espressioni di mappatura, consultare [Riferimento alla fonte di mappatura dei parametri per REST APIs in API Gateway](rest-api-parameter-mapping-sources.md). È possibile utilizzare la mappatura dei parametri nella richiesta di integrazione per integrazioni proxy e non proxy, ma per usarla per una risposta di integrazione, è necessaria un’integrazione non proxy.

Ad esempio, è possibile mappare il parametro di intestazione della richiesta di metodo `puppies` al parametro di intestazione della richiesta di integrazione `DogsAge0`. Quindi, se un client invia l’intestazione `puppies:true` all’API, la richiesta di integrazione invia l’intestazione della richiesta `DogsAge0:true` all’endpoint di integrazione. Nel diagramma seguente viene illustrato il ciclo di vita della richiesta di questo esempio.

![\[Diagramma dell’esempio di mappatura dei parametri di Gateway API per una richiesta\]](http://docs.aws.amazon.com/it_it/apigateway/latest/developerguide/images/parameter-mapping-example1.png)


Per eseguire questo esempio utilizzando Gateway API, consultare [Esempio 1: mappare un parametro della richiesta di metodo a un parametro della richiesta di integrazione](request-response-data-mappings.md#request-response-data-mappings-example-1).

 Inoltre, è possibile mappare il parametro di intestazione `kittens` della risposta di integrazione al parametro di intestazione `CatsAge0` della risposta di metodo. Quindi, se l’endpoint di integrazione restituisce `kittens:false`, il client riceve l’intestazione `CatsAge0:false`. Nel diagramma seguente viene illustrato il ciclo di vita della richiesta di questo esempio.

![\[Diagramma dell’esempio di mappatura dei parametri di Gateway API per una risposta\]](http://docs.aws.amazon.com/it_it/apigateway/latest/developerguide/images/parameter-mapping-example2.png)


**Topics**
+ [Esempi di mappatura dei parametri per REST APIs in API Gateway](request-response-data-mappings.md)
+ [Riferimento alla fonte di mappatura dei parametri per REST APIs in API Gateway](rest-api-parameter-mapping-sources.md)

# Esempi di mappatura dei parametri per REST APIs in API Gateway
<a name="request-response-data-mappings"></a>

Gli esempi seguenti mostrano come creare espressioni di mappatura dei parametri utilizzando la console Gateway API, OpenAPI e modelli CloudFormation . Per un esempio di come utilizzare la mappatura dei parametri per creare le intestazioni CORS richieste, consultare [CORS per REST APIs in API Gateway](how-to-cors.md). 

## Esempio 1: mappare un parametro della richiesta di metodo a un parametro della richiesta di integrazione
<a name="request-response-data-mappings-example-1"></a>

L’esempio seguente mappa il parametro di intestazione `puppies` della richiesta di metodo al parametro di intestazione `DogsAge0`della richiesta di integrazione. 

------
#### [ Console di gestione AWS ]

**Per mappare il parametro della richiesta di metodo**

1. Accedi alla console API Gateway all'indirizzo [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Scegliere una REST API.

1. Scegliere un metodo.

   Il metodo deve disporre di un’integrazione non proxy.

1. Per **Impostazioni della richiesta del metodo** scegliere **Modifica**.

1. Scegli **Intestazioni di richiesta HTTP**.

1. Seleziona **Add header (Aggiungi intestazione)**.

1. In **Nome**, inserisci **puppies**.

1. Scegli **Save** (Salva).

1. Scegli la scheda **Richiesta di integrazione**, quindi seleziona **Modifica** per **Impostazioni della richiesta di integrazione**.

   Aggiunge Console di gestione AWS automaticamente una mappatura dei parametri da `method.request.header.puppies ` a `puppies` per te, ma devi modificare il **nome** in modo che corrisponda al parametro di intestazione della richiesta previsto dall'endpoint di integrazione.

1. In **Nome**, inserisci **DogsAge0**.

1. Scegli **Save** (Salva).

1. Implementa nuovamente l'API per rendere effettive le modifiche.

I passaggi seguenti mostrano come verificare che la mappatura dei parametri sia stata completata correttamente.

**(Facoltativo) Test della mappatura dei parametri**

1. Seleziona la scheda **Test**. Potrebbe essere necessario scegliere il pulsante freccia destra per visualizzare la scheda.

1. In Intestazioni, immetti **puppies:true**.

1. Scegli **Test (Esegui test)**.

1. Nella sezione **Log**, il risultato sarà simile al seguente:

   ```
   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}
   ```

   Il parametro dell’intestazione della richiesta è cambiato da `puppies` a `DogsAge0`.

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

 In questo esempio, si utilizza la proprietà [body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) per importare un file di definizione OpenAPI in Gateway API. 

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

------

## Esempio 2: mappare più parametri di richiesta di metodo a diversi parametri di richiesta di integrazione
<a name="request-response-data-mappings-example-2"></a>

L’esempio seguente mappa il parametro della stringa di query della richiesta di metodo con più valori `methodRequestQueryParam` al parametro della stringa di query della richiesta di integrazione `integrationQueryParam` e mappa il parametro dell’intestazione della richiesta di metodo `methodRequestHeaderParam` al parametro del percorso della richiesta di integrazione `integrationPathParam`.

------
#### [ Console di gestione AWS ]

**Per mappare i parametri della richiesta di metodo**

1. Accedi alla console API Gateway all'indirizzo [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Scegliere una REST API.

1. Scegliere un metodo.

   Il metodo deve disporre di un’integrazione non proxy.

1. Per **Impostazioni della richiesta del metodo** scegliere **Modifica**.

1. Scegli **Parametri della stringa di query URL**.

1. Scegliere **Add query string (Aggiungi stringa di query)**.

1. In **Nome**, inserisci **methodRequestQueryParam**.

1. Scegli **Intestazioni di richiesta HTTP**.

1. Seleziona **Add header (Aggiungi intestazione)**.

1. In **Nome**, inserisci **methodRequestHeaderParam**.

1. Scegli **Save** (Salva).

1. Scegli la scheda **Richiesta di integrazione**, quindi seleziona **Modifica** per **Impostazioni della richiesta di integrazione**.

1. Scegli **Parametri di percorso URL**.

1. Scegli **Aggiungi parametro di percorso**.

1. In **Nome**, inserisci **integrationPathParam**.

1. In **Mappato da**, inserire **method.request.header.methodRequestHeaderParam**.

   In questo modo l’intestazione della richiesta di metodo specificata nella richiesta di metodo viene mappata a un nuovo parametro del percorso della richiesta di integrazione.

1. Scegli **Parametri della stringa di query URL**.

1. Scegliere **Add query string (Aggiungi stringa di query)**.

1. In **Nome**, inserisci **integrationQueryParam**.

1. In **Mappato da**, inserire **method.request.multivaluequerystring.methodRequestQueryParam**.

   In questo modo il parametro della stringa di query con più valori viene mappato a un nuovo parametro della stringa di query della richiesta di integrazione a valore singolo.

1. Scegli **Save** (Salva).

1. Implementa nuovamente l'API per rendere effettive le modifiche.

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

 In questo esempio, si utilizza la proprietà [body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) per importare un file di definizione OpenAPI in Gateway API. 

La seguente definizione OpenAPI crea le mappature dei parametri per un’integrazione HTTP:
+ L’intestazione della richiesta di metodo `methodRequestHeaderParam` nel parametro di percorso della richiesta di integrazione `integrationPathParam`
+ La stringa di query della richiesta di metodo con più valori `methodRequestQueryParam` nella stringa di query della richiesta di integrazione `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 seguente definizione OpenAPI crea le mappature dei parametri per un’integrazione HTTP:
+ L’intestazione della richiesta di metodo `methodRequestHeaderParam` nel parametro di percorso della richiesta di integrazione `integrationPathParam`
+ La stringa di query della richiesta di metodo con più valori `methodRequestQueryParam` nella stringa di query della richiesta di integrazione `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"
        }
      }
    }
  }
}
```

------

## Esempio 3: mappare i campi dal corpo della richiesta JSON ai parametri della richiesta di integrazione
<a name="request-response-data-mappings-example-3"></a>

[Puoi anche mappare i parametri della richiesta di integrazione dai campi del corpo della richiesta JSON utilizzando un'espressione. JSONPath ](http://goessner.net/articles/JsonPath/index.html#e2) L’esempio seguente mappa il corpo della richiesta di metodo a un’intestazione della richiesta di integrazione denominata `body-header` e mappa parte del corpo della richiesta, come indicato da un’espressione JSON, a un’intestazione della richiesta di integrazione denominata `pet-price`.

Per testare questo esempio è necessario fornire un input che contenga una categoria di prezzo, come la seguente:

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

------
#### [ Console di gestione AWS ]

**Per mappare i parametri della richiesta di metodo**

1. Accedi alla console API Gateway all'indirizzo [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Scegliere una REST API.

1. Scegliere un metodo `POST`, `PUT`, `PATCH` o `ANY`.

   Il metodo deve disporre di un’integrazione non proxy.

1. Per **Impostazioni della richiesta di integrazione**, scegliere **Modifica**.

1. Scegliere **Parametri delle intestazioni delle richieste URL**.

1. Scegliere **Aggiungi parametro dell’intestazione della richiesta**.

1. In **Nome**, inserisci **body-header**.

1. In **Mappato da**, inserire **method.request.body**.

   In questo modo il corpo della richiesta di metodo viene mappato a un nuovo parametro di intestazione della richiesta di integrazione.

1. Scegliere **Aggiungi parametro dell’intestazione della richiesta**.

1. In **Nome**, inserisci **pet-price**.

1. In **Mappato da**, inserire ** method.request.body[0].price**.

   In questo modo una parte del corpo della richiesta di metodo viene mappata a un nuovo parametro di intestazione della richiesta di integrazione.

1. Scegli **Save** (Salva).

1. Implementa nuovamente l'API per rendere effettive le modifiche.

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

 In questo esempio, si utilizza la proprietà [body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) per importare un file di definizione OpenAPI in Gateway API. 

```
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 seguente definizione OpenAPI mappa i parametri della richiesta di integrazione dai campi del corpo della richiesta 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"
        }
      }
    }
  }
}
```

------

## Esempio 4: mappare la risposta di integrazione alla risposta di metodo
<a name="request-response-data-mappings-example-4"></a>

È anche possibile mappare la risposta di integrazione alla risposta di metodo. L’esempio seguente mappa il corpo della risposta di integrazione a un’intestazione della risposta di metodo denominata `location`, mappa l’intestazione della risposta di integrazione `x-app-id` all’intestazione della risposta di metodo e mappa l’intestazione `id` della risposta di integrazione con più valori `item` all’intestazione della risposta del metodo `items`.

------
#### [ Console di gestione AWS ]

**Per mappare la risposta di integrazione**

1. Accedi alla console API Gateway all'indirizzo [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Scegliere una REST API.

1. Scegliere un metodo.

   Il metodo deve disporre di un’integrazione non proxy.

1. Scegliere la scheda **Metodo di risposta**, quindi per **Risposta 200** scegliere **Modifica**.

1. Per **Nome intestazione**, scegliere **Aggiungi intestazione**.

1. Creare tre intestazioni denominate **id**, **item** e **location**.

1. Scegli **Save** (Salva).

1. Nella scheda **Risposta di integrazione** scegliere **Modifica** per **Predefinito - Risposta**.

1. In **Mappature intestazione** immettere i seguenti valori.

   1. Per **id**, immettere **integration.response.header.x-app-id**

   1. Per **elemento**, immettere **integration.response.multivalueheader.item**

   1. Per **percorso**, immettere **integration.response.body.redirect.url**

1. Scegli **Save** (Salva).

1. Implementa nuovamente l'API per rendere effettive le modifiche.

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

 In questo esempio, si utilizza la proprietà [body](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) per importare un file di definizione OpenAPI in Gateway API. 

```
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 definizione OpenAPI seguente mappa la risposta di integrazione alla risposta di metodo.

```
{
  "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
        }
      }
    }
  }
}
```

------

# Riferimento alla fonte di mappatura dei parametri per REST APIs in API Gateway
<a name="rest-api-parameter-mapping-sources"></a>

Quando si crea una mappatura dei parametri, è possibile specificare i parametri della richiesta di metodo o della risposta di integrazione da modificare e le modalità con cui si desidera modificare tali parametri.

La tabella seguente mostra i parametri della richiesta di metodo che è possibile mappare e l’espressione per creare la mappatura. In queste espressioni, *name* è il nome di un parametro di richiesta del metodo. Ad esempio, per mappare il parametro dell’intestazione della richiesta `puppies`, si utilizza l’espressione `method.request.header.puppies`. L’espressione deve corrispondere all’espressione regolare `'^[a-zA-Z0-9._$-]+$]'`. È possibile utilizzare la mappatura dei parametri nella richiesta di integrazione per le integrazioni proxy e non proxy. 


| **Origine dati mappata** | **Espressione di mappatura** | 
| --- | --- | 
| Percorso della richiesta di metodo | method.request.path.name | 
| Stringa di query della richiesta di metodo | method.request.querystring.name | 
| Stringa di query multi-valore della richiesta del metodo | method.request.multivaluequerystring.name | 
| Intestazione della richiesta di metodo | method.request.header.name | 
| Intestazione multi-valore della richiesta di metodo | method.request.multivalueheader.name | 
| Corpo della richiesta di metodo | method.request.body | 
| Corpo della richiesta del metodo (JsonPath) | `method.request.body.JSONPath_EXPRESSION`. *JSONPath\$1EXPRESSION*è un' JSONPath espressione per un campo JSON del corpo di una richiesta. Per ulteriori informazioni, vedere [JSONPath expression](http://goessner.net/articles/JsonPath/index.html#e2).  | 
| Variabili di fase | stageVariables.name | 
| Variabili di contesto |  `context.name` Il nome deve essere una delle [variabili di contesto supportate](api-gateway-mapping-template-reference.md#context-variable-reference). | 
| Valore statico | `'static_value'`. La *static\$1value* è una stringa letterale e deve essere racchiusa tra virgolette singole. Ad esempio, `'https://www.example.com'`. | 

La tabella seguente mostra i parametri della risposta di integrazione che è possibile mappare e l’espressione per creare la mappatura. In queste espressioni, *name* è il nome di un parametro di risposta di integrazione. È possibile mappare le intestazioni della risposta di metodo da qualsiasi intestazione o corpo della risposta di integrazione, variabili \$1context o valori statici. Per utilizzare la mappatura dei parametri per una risposta di integrazione, è necessaria un’integrazione non proxy.


| Origine dati mappata | Espressione di mappatura | 
| --- | --- | 
| Intestazione della risposta di integrazione | integration.response.header.name | 
| Intestazione della risposta di integrazione | integration.response.multivalueheader.name | 
| Corpo della risposta di integrazione | integration.response.body | 
| Corpo della risposta di integrazione (JsonPath) | `integration.response.body.JSONPath_EXPRESSION` *JSONPath\$1EXPRESSION*è un' JSONPath espressione per un campo JSON del corpo di una risposta. Per ulteriori informazioni, vedere [JSONPath expression](http://goessner.net/articles/JsonPath/index.html#e2). | 
| Variabile di fase | stageVariables.name | 
| Variabile di contesto |  `context.name` Il nome deve essere una delle [variabili di contesto supportate](api-gateway-mapping-template-reference.md#context-variable-reference). | 
| Valore statico | ` 'static_value'` La *static\$1value* è una stringa letterale e deve essere racchiusa tra virgolette singole. Ad esempio, `'https://www.example.com'`. | 