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

Configurer une réponse de passerelle pour une API REST à l’aide de la console API Gateway

Mode de mise au point
Configurer une réponse de passerelle pour une API REST à l’aide de la console 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.

L’exemple suivant montre comment configurer une réponse de passerelle pour une API REST à l’aide de la console API Gateway.

Pour personnaliser une réponse de passerelle à l’aide de la console API Gateway
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Choisissez une API REST.

  3. Dans le panneau de navigation principal, choisissez Réponses de la passerelle.

  4. Choisissez un type de réponse, puis choisissez Modifier. Dans cette procédure, nous allons utiliser Jeton d’authentification manquant comme exemple.

  5. Vous pouvez modifier le Code de statut généré par API Gateway pour renvoyer un autre code de statut qui répond aux exigences de votre API. Dans cet exemple, la personnalisation modifie le code de statut de la valeur par défaut (403) à 404, car ce message d’erreur est émis lorsqu’un client appelle une ressource non prise en charge ou non valide qui peut être considérée comme non trouvée.

  6. Pour renvoyer des en-têtes personnalisés, choisissez Ajouter un en-tête de réponse sous En-têtes de réponse. À titre d’illustration, nous allons ajouter les en-têtes personnalisés suivants :

    Access-Control-Allow-Origin:'a.b.c' x-request-id:method.request.header.x-amzn-RequestId x-request-path:method.request.path.petId x-request-query:method.request.querystring.q

    Dans les mappages d’en-tête précédents, un nom de domaine statique ('a.b.c') est mappé à l’en-tête Allow-Control-Allow-Origin pour autoriser l’accès CORS à l’API, l’en-tête de demande d’entrée de x-amzn-RequestId est mappé à request-id dans la réponse, la variable de chemin petId de la demande entrante est mappée à l’en-tête request-path dans la réponse et le paramètre de requête q de la demande d’origine est mappé à l’en-tête request-query de la réponse.

  7. Sous Modèles de réponse, conservez application/json pour le Type de contenu et saisissez le modèle de mappage de corps suivant dans l’éditeur Modèle de mappage de corps :

    { "message":"$context.error.messageString", "type": "$context.error.responseType", "statusCode": "'404'", "stage": "$context.stage", "resourcePath": "$context.resourcePath", "stageVariables.a": "$stageVariables.a" }

    Cet exemple montre comment mapper les propriétés $context et $stageVariables aux propriétés du corps de demande de passerelle.

  8. Sélectionnez Enregistrer les modifications.

  9. Déployez l’API dans une étape nouvelle ou existante.

Testez la réponse de votre passerelle en appelant la commande CURL suivante, en supposant que l’URL d’invocation de la méthode d’API correspondante est https://o81lxisefl.execute-api.us-east-1.amazonaws.com/custErr/pets/{petId} :

curl -v -H 'x-amzn-RequestId:123344566' https://o81lxisefl.execute-api.us-east-1.amazonaws.com/custErr/pets/5/type?q=1

Comme le paramètre de chaîne de requête supplémentaire q=1 n’est pas compatible avec l’API, une erreur est renvoyée par la réponse de passerelle spécifiée. Vous devriez obtenir une réponse de passerelle semblable à ce qui suit :

> GET /custErr/pets/5?q=1 HTTP/1.1 Host: o81lxisefl.execute-api.us-east-1.amazonaws.com User-Agent: curl/7.51.0 Accept: */* HTTP/1.1 404 Not Found Content-Type: application/json Content-Length: 334 Connection: keep-alive Date: Tue, 02 May 2017 03:15:47 GMT x-amzn-RequestId: 123344566 Access-Control-Allow-Origin: a.b.c x-amzn-ErrorType: MissingAuthenticationTokenException header-1: static x-request-query: 1 x-request-path: 5 X-Cache: Error from cloudfront Via: 1.1 441811a054e8d055b893175754efd0c3.cloudfront.net (CloudFront) X-Amz-Cf-Id: nNDR-fX4csbRoAgtQJ16u0rTDz9FZWT-Mk93KgoxnfzDlTUh3flmzA== { "message":"Missing Authentication Token", "type": MISSING_AUTHENTICATION_TOKEN, "statusCode": '404', "stage": custErr, "resourcePath": /pets/{petId}, "stageVariables.a": a }

L’exemple précédent suppose que le serveur principal d’API est Pet Store et que l’API a une variable d’étape a définie.

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