

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.

# Configurer le mappage des données pour WebSocket APIs dans API Gateway
<a name="websocket-api-data-mapping"></a>

Le *mappage de données* vous permet de mapper des données d’une [demande de routage](api-gateway-basic-concept.md#apigateway-definition-route-request) vers une intégration backend.

**Note**  
Le mappage de données pour WebSocket APIs n'est pas pris en charge dans le AWS Management Console. Vous devez utiliser le AWS CLI AWS CloudFormation, ou un SDK pour configurer le mappage des données.

**Topics**
+ [Mappage des données de demande de routage à des paramètres de demande d’intégration](#websocket-mapping-request-parameters)
+ [Exemples](#websocket-data-mapping-examples)

## Mappage des données de demande de routage à des paramètres de demande d’intégration
<a name="websocket-mapping-request-parameters"></a>

Les paramètres de demande d’intégration peuvent être mappés à partir de n’importe quels paramètres de demande de routage défini, du corps de la demande, des variables [`context` ou ](api-gateway-mapping-template-reference.md#context-variable-reference) [`stage`](api-gateway-mapping-template-reference.md#stagevariables-template-reference), ainsi que des valeurs statiques.

Le tableau suivant présente les expressions de mappage des données des demandes d’intégration. Dans le tableau, *`PARAM_NAME`* est le nom d’un paramètre de demande de routage du type de paramètre donné. Elle doit correspondre à l'expression régulière`'^[a-zA-Z0-9._$-]+$]'`. *JSONPath\$1EXPRESSION*est une JSONPath expression pour un champ JSON du corps de la requête.


| Source de données mappée | Expression de mappage | 
| --- | --- | 
| Chaîne de requête de demande (prise en charge uniquement pour le routage \$1connect) | route.request.querystring.PARAM\$1NAME | 
| En-tête de demande (prise en charge uniquement pour le routage \$1connect) | route.request.header.PARAM\$1NAME | 
| Chaîne de demande à plusieurs valeurs (prise en charge uniquement pour le routage \$1connect) | route.request.multivaluequerystring.PARAM\$1NAME | 
| En-tête de demande à plusieurs valeurs (prise en charge uniquement pour le routage \$1connect) | route.request.multivalueheader.PARAM\$1NAME | 
| Corps de la demande | route.request.body.JSONPath\$1EXPRESSION | 
| Variables d’étape | stageVariables.VARIABLE\$1NAME | 
| Variables de contexte | context.VARIABLE\$1NAME qui doit être l’une des [variables de contexte prises en charge](api-gateway-mapping-template-reference.md#context-variable-reference). | 
| Valeur statique | 'STATIC\$1VALUE'. STATIC\$1VALUEIl s'agit d'une chaîne littérale qui doit être placée entre guillemets simples. | 

Lorsque vous créez un mappage de données, AWS CLI assurez-vous de suivre le format correct pour utiliser des littéraux avec des chaînes dans le AWS CLI. Pour plus d’informations, consultez [Using quotation marks and literals with strings in the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-quoting-strings.html) dans le *Guide d’utilisateur AWS Command Line Interface *.

## Exemples
<a name="websocket-data-mapping-examples"></a>

Les AWS CLI exemples suivants configurent les mappages de données. Pour un exemple CloudFormation de modèle, voir [samples/websocket-data-mapping.zip](samples/websocket-data-mapping.zip).

### Mapper ConnectionID d’un client à un en-tête dans une demande d’intégration
<a name="websocket-data-mapping-examples.connectionId"></a>

La commande [update-integration](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/update-integration.html) suivante mappe l’`connectionId` d’un client à un en-tête `connectionId` de la demande adressée à une intégration backend :

```
aws apigatewayv2 update-integration \
    --integration-id abc123 \
    --api-id a1b2c3d4 \ 
    --request-parameters 'integration.request.header.connectionId'='context.connectionId'
```

### Mapper un paramètre de chaîne de demande à un en-tête dans une demande d’intégration
<a name="websocket-data-mapping-examples.querystring"></a>

L’exemple suivant mappe un paramètre de chaîne de requête `authToken` à un en-tête `authToken` de la demande d’intégration.

1. Utilisez la commande [update-route](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/update-route.html) suivante pour ajouter le paramètre de chaîne de requête `authToken` aux paramètres de demande de la route.

   ```
   aws apigatewayv2 update-route --route-id 0abcdef \
       --api-id a1b2c3d4 \
       --request-parameters '{"route.request.querystring.authToken": {"Required": false}}'
   ```

1.  Utilisez la commande [update-integration](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/update-integration.html) suivante pour mapper le paramètre de chaîne de requête à l’en-tête `authToken` de la demande adressée à l’intégration backend.

   ```
   aws apigatewayv2 update-integration \
       --integration-id abc123 \
       --api-id a1b2c3d4 \
       --request-parameters 'integration.request.header.authToken'='route.request.querystring.authToken'
   ```

1. (Facultatif) Si nécessaire, utilisez ce qui suit [delete-route-request-parameter](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/delete-route-request-parameter.html)pour supprimer le paramètre de chaîne de `authToken` requête des paramètres de demande de l'itinéraire.

   ```
   aws apigatewayv2 delete-route-request-parameter \
       --route-id 0abcdef \
       --api-id a1b2c3d4 \
       --request-parameter-key 'route.request.querystring.authToken'
   ```