Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Validation des requêtes pour les API WebSocket dans API Gateway

Mode de mise au point
Validation des requêtes pour les API WebSocket dans API Gateway - Amazon API Gateway

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.

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.

Vous pouvez configurer API Gateway afin qu’il exécute la validation d’une requête de routage avant de continuer avec la demande d’intégration. Si la validation échoue, API Gateway rejette la requête sans appeler votre back-end, envoie une réponse de passerelle « Bad request body » au client et publie les résultats de validation dans CloudWatch Logs. L’utilisation de la validation de cette façon réduit les appels inutiles vers votre back-end d’API.

Expressions de sélection du modèle

Vous pouvez utiliser une expression de sélection de modèle pour valider dynamiquement les requêtes au sein d’une même route. La validation du modèle se produit si vous fournissez une expression de sélection de modèle pour les intégrations proxy ou autres que de proxy. Vous devrez peut-être définir le modèle $default comme solution de secours si aucun modèle correspondant n’est trouvé. S’il n’y a pas de modèle correspondant et que $default n’est pas défini, la validation échoue. L’expression de sélection ressemble à Route.ModelSelectionExpression et évalue à la clé pour Route.RequestModels.

Lorsque vous définissez une route pour une API WebSocket, vous pouvez éventuellement spécifier une expression de sélection du modèle. Cette expression est évaluée pour sélectionner le modèle à utiliser pour la validation du corps lors de la réception d’une requête. L’expression correspond à l’une des entrées de l’élément d’une route requestmodels.

Un modèle est exprimé sous forme de schéma JSON et décrit la structure des données du corps de la requête. La nature de ces expressions de sélection vous permet de choisir de manière dynamique le modèle à utiliser pour la validation lors de l’exécution pour une route particulière. Pour plus d’informations sur la création d’un modèle, consultez la section Modèles de données pour REST APIs.

Configuration de la validation des requêtes à l’aide de la console API Gateway

L’exemple suivant vous montre comment configurer une validation des demandes sur une route.

Vous devez d’abord créer un modèle, puis une route. Ensuite, vous devez configurer la validation des demandes sur la route que vous venez de créer. Enfin, vous devez déployer et tester votre API. Pour effectuer ce didacticiel, vous avez besoin d’une API WebSocket avec $request.body.action comme expression de sélection de route et d’un point de terminaison d’intégration pour votre nouvelle route.

Vous avez également besoin de wscat pour vous connecter à votre API. Pour en savoir plus, consultez wscatÀ utiliser pour se connecter à une WebSocket API et y envoyer des messages.

Pour créer un modèle
  1. Connectez-vous à la console API Gateway à l’adresse : https://console.aws.amazon.com/apigateway.

  2. Choisissez une API WebSocket.

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

  4. Sélectionnez Create model.

  5. Pour Name (Nom), saisissez emailModel.

  6. Pour Type de contenu, entrez application/json.

  7. Pour Schéma du modèle, saisissez le modèle qui suit :

    { "$schema": "http://json-schema.org/draft-04/schema#", "type" : "object", "required" : [ "address"], "properties" : { "address": { "type": "string" } } }

    Ce modèle nécessite que la requête contienne une adresse e-mail.

  8. Choisissez Enregistrer.

Au cours de cette étape, vous allez créer une route pour votre API WebSocket.

Pour créer une route
  1. Dans le volet de navigation principal, sélectionnez Routes.

  2. Choisissez Create Route (Créer un itinéraire).

  3. Pour Route key (Clé de route), entrez sendMessage.

  4. Choisissez un type d’intégration et spécifiez un point de terminaison d’intégration. Pour plus d’informations, consultez Intégrations pour WebSocket APIs in API Gateway.

  5. Choisissez Create Route (Créer un itinéraire).

Au cours de cette étape, vous allez configurer la validation des demandes pour la route sendMessage.

Pour configurer une validation des demandes
  1. Dans l’onglet Requête de routage, sous Paramètres de requête de routage, choisissez Modifier.

  2. Pour Expression de sélection de modèle, saisissez ${request.body.messageType}.

    API Gateway utilise la propriété messageType pour valider la requête entrante.

  3. Choisissez Ajouter un modèle de requête.

  4. Pour Clé de modèle, saisissez email.

  5. Pour Modèle, choisissez emailModel.

    API Gateway valide les messages entrants avec la propriété messageType définie sur email pour ce modèle.

    Note

    Si API Gateway ne parvient pas à faire correspondre l’expression de sélection du modèle à une clé de modèle, le modèle $default est sélectionné. S’il n’y a pas de modèle $default, la validation échoue. Pour les API de production, nous vous recommandons de créer un modèle $default.

  6. Sélectionnez Enregistrer les modifications.

Au cours de cette étape, vous allez déployer et tester votre API.

Pour déployer et tester votre API
  1. Sélectionnez Deploy API (Déployer une API).

  2. Choisissez l’étape souhaitée dans la liste déroulante ou saisissez le nom d’une nouvelle étape.

  3. Choisissez Deploy (Déployer).

  4. Dans le volet de navigation principal, choisissez Étapes.

  5. Copiez l’URL WebSocket de votre API. L’URL doit ressembler à wss://abcdef123.execute-api.us-east-2.amazonaws.com/production.

  6. Ouvrez un nouveau terminal et exécutez la commande wscat avec les paramètres suivants.

    wscat -c wss://abcdef123.execute-api.us-west-2.amazonaws.com/production
    Connected (press CTRL+C to quit)
  7. Utilisez la commande suivante pour tester votre API.

    {"action": "sendMessage", "messageType": "email"}
    {"message": "Invalid request body", "connectionId":"ABCD1=234", "requestId":"EFGH="}

    API Gateway rejettera la requête.

    Utilisez la commande suivante pour envoyer une demande valide à votre API.

    {"action": "sendMessage", "messageType": "email", "address": "mary_major@example.com"}

Rubrique suivante :

Transformations de données

Rubrique précédente :

Réponses d’intégration
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.