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.
Eine API-Methodenantwort kapselt die Ausgabe einer API-Methodenanforderung, die der Client erhält. Die Ausgabedaten enthalten einen HTTP-Statuscode, einige Header und in der Regel einen Textkörper.
Mit Nicht-Proxy-Integrationen können die angegebenen Antwortparameter und Textkörper von den zugeordneten Integrationsantwortdaten oder bestimmten statischen Werten entsprechend der Mappings zugewiesen werden. Diese Mappings werden in der Integrationsantwort beschrieben. Das Mapping kann eine identische Transformation sein, die die Integrationsantwort unverändert weiterleitet.
Bei einer Proxy-Integration leitet API Gateway die Antwort des Backends automatisch an die Antwort der Methode weiter. Sie müssen sich nicht um die Einrichtung der API-Methodenantwort kümmern. Bei der Lambda-Proxy-Integration muss die Lambda-Funktion jedoch ein Ergebnis in diesem Ausgabeformat zurückgeben, damit API Gateway die Integrationsantwort erfolgreich einer Methodenantwort zuordnen kann.
Programmatisch gesehen läuft die Einrichtung der Methodenantwort darauf hinaus, eine MethodResponseRessource von API Gateway zu erstellen und die Eigenschaften von statusCode, ResponseParameters und ResponseModels festzulegen.
Wenn Sie Statuscodes für eine API-Methode festlegen, sollten Sie einen als Standard auswählen, um jede Integrationsantwort eines unerwarteten Statuscodes zu bearbeiten. Es ist sinnvoll, 500
als Standard festzulegen, da dies mit dem Umwandeln von ansonsten nicht zugeordneten Antworten als serverseitiger Fehler gleichzusetzen ist. Zur Vereinfachung legt die API Gateway-Konsole die 200
-Antwort als Standard fest. Sie können dies jedoch auf die 500
-Antwort zurücksetzen.
Um eine Methodenantwort einzurichten, müssen Sie die Methodenanforderung erstellt haben.
Einrichten des Statuscodes der Methodenantwort
Der Statuscode einer Methodenantwort definiert einen Antworttyp. Beispiel: Antworten von 200, 400 und 500 geben jeweils erfolgreiche, clientseitige Fehler und serverseitige Fehlerantworten an.
Um den Statuscode einer Methodenantwort einzurichten, legen Sie die statusCode
-Eigenschaft auf einen HTTP-Statuscode fest. put-method-responseDer folgende Befehl erstellt eine 200
Methodenantwort.
aws apigateway put-method-response \ --rest-api-id vaz7da96z6 \ --resource-id 6sxz2j \ --http-method GET \ --status-code 200
Einrichten von Parametern der Methodenantwort
Parameter der Methodenantwort definieren, welche Header der Client als Reaktion auf die zugeordnete Methodenanforderung erhält. Antwortparameter legen auch ein Ziel fest, dem API Gateway einen Parameter der Integrationsantwort entsprechend der Mappings zuweist, die in der Integrationsantwort der API beschrieben sind.
Um die Parameter der Methodenantwort einzurichten, fügen Sie der responseParameters
-Zuordnung der MethodResponse
-Schlüssel-Wert-Paare im Format "{parameter-name}":"{boolean}"
hinzu. Der folgende put-method-responseBefehl legt den my-header
Header fest.
aws apigateway put-method-response \ --rest-api-id vaz7da96z6 \ --resource-id 6sxz2j \ --http-method GET \ --status-code 200 \ --response-parameters method.response.header.my-header=false
Einrichten von Modellen der Methodenantwort
Ein Modell der Methodenantwort definiert ein Format des Textkörpers der Methodenantwort. Das Einrichten eines Methodenantwort-Modells ist erforderlich, wenn Sie einen stark typisierten SDK für die API generieren. Es stellt sicher, dass die Ausgabe an eine geeignete Klasse in Java oder Objective-C übergeben wird. In anderen Fällen ist das Einrichten eines Modells optional.
Bevor Sie das Antwortmodell einrichten können, müssen Sie das Modell zunächst in API Gateway erstellen. Dazu können Sie den Befehl create-model
aufrufen. Der folgende Befehl create-model erstellt ein PetStorePet
Modell, um den Hauptteil der Antwort auf die GET /pets/{petId}
Methodenanforderung zu beschreiben.
aws apigateway create-model \ --rest-api-id vaz7da96z6 \ --content-type application/json \ --name PetStorePet \ --schema '{ \ "$schema": "http://json-schema.org/draft-04/schema#", \ "title": "PetStorePet", \ "type": "object", \ "properties": { \ "id": { "type": "number" }, \ "type": { "type": "string" }, \ "price": { "type": "number" } \ } \ }'
Das Ergebnis wird als eine API Gateway-Model
-Ressource erstellt.
Um die Methodenantwortmodelle zur Definition des Payload-Formats einzurichten, fügen Sie das Schlüssel-Wert-Paar „application/json“:“ PetStorePet "zur Ressourcenzuweisung hinzu. requestModels
MethodResponse
Der folgende put-method-responseBefehl erstellt eine Methodenantwort, die ein Antwortmodell verwendet, um das Payload-Format zu definieren:
aws apigateway put-method-response \ --rest-api-id vaz7da96z6 \ --resource-id 6sxz2j \ --http-method GET \ --status-code 200 \ --response-parameters method.response.header.my-header=false \ --response-models '{"application/json":"PetStorePet"}'