Richten Sie mithilfe der Gateway-Konsole eine Gateway-Antwort für einen ein REST API API - APIAmazon-Gateway

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Richten Sie mithilfe der Gateway-Konsole eine Gateway-Antwort für einen ein REST API API

Das folgende Beispiel zeigt, wie Sie REST API mithilfe der Gateway-Konsole eine API Gateway-Antwort für einen einrichten

So passen Sie eine Gateway-Antwort mithilfe der API Gateway-Konsole an
  1. Melden Sie sich unter https://console.aws.amazon.com/apigateway bei der API Gateway-Konsole an.

  2. Wählen Sie ein RESTAPI.

  3. Wählen Sie im Hauptnavigationsbereich Gateway-Antworten.

  4. Wählen Sie einen Antworttyp und dann Bearbeiten aus. In dieser Anleitung verwenden wir Fehlendes Authentifizierungstoken als Beispiel.

  5. Sie können den vom API Gateway generierten Statuscode ändern, um einen anderen Statuscode zurückzugeben, der Ihren API Anforderungen entspricht. In diesem Beispiel ändert die Anpassung den Statuscode vom Standard (403) zu 404, da diese Fehlermeldung auftritt, wenn ein Client eine nicht unterstützte oder ungültige Ressource aufruft, die als nicht gefunden betrachtet werden kann.

  6. Um zu den benutzerdefinierten Headern zurückzukehren, wählen Sie Header hinzufügen hinzufügen unter Antwort-Header aus. Zur Veranschaulichung fügen wir die folgenden benutzerdefinierten Header hinzu:

    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

    In den vorherigen Header-Zuordnungen wird dem Header ein statischer Domainname ('a.b.c') zugeordnet, um den Allow-Control-Allow-Origin CORS Zugriff auf den zu ermöglichenAPI; der Eingabeanforderungsheader von x-amzn-RequestId wird request-id in der Antwort zugeordnet; die petId Pfadvariable der eingehenden Anfrage wird dem request-path Header in der Antwort zugeordnet; und der q Abfrageparameter der ursprünglichen Anfrage wird dem request-query Header der Antwort zugeordnet.

  7. Behalten Sie unter Antwortvorlagen die Option application/json für Inhaltstyp bei und geben Sie die folgende Text-Mapping-Vorlage in den Editor Vorlagentext ein:

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

    In diesem Beispiel sehen Sie, wie die $context- und $stageVariables-Eigenschaften den Eigenschaften des Gateway-Antworttexts zugewiesen werden.

  8. Wählen Sie Änderungen speichern aus.

  9. Stellen Sie das in einer neuen oder vorhandenen Phase bereitAPI.

Testen Sie Ihre Gateway-Antwort, indem Sie den folgenden CURL Befehl aufrufen, vorausgesetzt, der Aufruf der entsprechenden API Methode URL lautethttps://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

Da der zusätzliche Abfragezeichenfolgenparameter q=1 nicht mit dem kompatibel istAPI, wird von der angegebenen Gateway-Antwort ein Fehler zurückgegeben. Sie sollten eine Gateway-Antwort wie die folgende erhalten:

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

Im vorherigen Beispiel wird davon ausgegangen, dass es sich bei dem API Backend um Pet Store handelt und für das API eine Stufenvariable,a, definiert ist.