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.
HTTP-Integrationen für REST-APIs in API Gateway
Sie können eine API-Methode mit einem HTTP-Endpunkt mithilfe der HTTP-Proxy-Integration oder der benutzerdefinierten HTTP-Integration integrieren.
API Gateway unterstützt die folgenden Endpunkt-Ports: 80, 443 und 1024-65535.
Mit der Proxy-Integration ist die Einrichtung einfach. Sie müssen nur die HTTP-Methode und die HTTP-Endpunkt-URI entsprechend der Backend-Anforderungen festlegen, wenn Sie sich nicht mit der Codierung oder dem Caching von Inhalten befassen.
Mit der benutzerdefinierten Integration ist die Einrichtung komplexer. Zusätzlich zu den Einrichtungsschritten der Proxy-Integration müssen Sie angeben, wie die eingehenden Anforderungsdaten der Integrationsanforderung und die resultierenden Integrationsantwortdaten der Methodenantwort zugeordnet werden.
Themen
HTTP-Proxy-Integrationen in API Gateway einrichten
Erstellen Sie zum Einrichten einer Proxy-Ressource mit dem HTTP-Proxy-Integrationstyp eine API-Ressource mit einem gierigen Pfadparameter (zum Beispiel /parent/{proxy+}
) und integrieren Sie diese Ressource mit einem HTTP-Backend-Endpunkt (zum Beispiel https://petstore-demo-endpoint.execute-api.com/petstore/{proxy}
) in die Methode ANY
. Der gierige Pfadparameter muss am Ende des Ressourcenpfads stehen.
Wie bei einer Nicht-Proxy-Ressource können Sie eine Proxy-Ressource mit der HTTP-Proxy-Integration einrichten, indem Sie die API Gateway-Konsole verwenden, eine OpenAPI-Definitionsdatei importieren oder die API Gateway-REST-API direkt aufrufen. Detaillierte Anweisungen für die Verwendung der API Gateway-Konsole zur Konfiguration einer Proxy-Ressource mit der HTTP-API-Integration finden Sie unter Tutorial: Erstellen Sie eine REST-API mit einer HTTP-Proxyintegration.
Die folgende OpenAPI-Definitionsdatei zeigt ein Beispiel für eine API mit einer Proxyressource, die in die PetStore
In diesem Beispiel wird ein Cache-Schlüssel für den Pfadparameter method.request.path.proxy
der Proxy-Ressource deklariert. Dies ist die Standardeinstellung, wenn Sie die API mit der API Gateway-Konsole erstellen. Der Basispfad der API (/test
entspricht einer Phase) ist der PetStore Seite der Website (/petstore
) zugeordnet. Die einzelne Integrationsanfrage spiegelt die gesamte PetStore Website wider und verwendet dabei die Greedy Path-Variable der API und die ANY
Catch-All-Methode. Die folgenden Beispiele veranschaulichen diese Spiegelung.
-
Festlegen von
ANY
alsGET
und{proxy+}
alspets
Vom Frontend initiierte Methodenanforderung:
GET https://4z9giyi2c1.execute-api.us-west-2.amazonaws.com/test/pets HTTP/1.1
An das Backend gesendete Integrationsanforderung:
GET http://petstore-demo-endpoint.execute-api.com/petstore/pets HTTP/1.1
Die Laufzeitinstanzen der Methode
ANY
und der Proxy-Ressource sind beide gültig. Der Aufruf gibt eine Antwort200 OK
mit der Nutzlast zurück, die den ersten Batch Haustiere enthält, wie vom Backend zurückgegeben. -
Festlegen von
ANY
alsGET
und{proxy+}
alspets?type=dog
GET https://4z9giyi2c1.execute-api.us-west-2.amazonaws.com/test/pets?type=dog HTTP/1.1
An das Backend gesendete Integrationsanforderung:
GET http://petstore-demo-endpoint.execute-api.com/petstore/pets?type=dog HTTP/1.1
Die Laufzeitinstanzen der Methode
ANY
und der Proxy-Ressource sind beide gültig. Der Aufruf gibt eine Antwort200 OK
mit der Nutzlast zurück, die den ersten Batch der angegebenen Hunde enthält, wie vom Backend zurückgegeben. -
Festlegen von
ANY
alsGET
und{proxy+}
alspets/{petId}
Vom Frontend initiierte Methodenanforderung:
GET https://4z9giyi2c1.execute-api.us-west-2.amazonaws.com/test/pets/1 HTTP/1.1
An das Backend gesendete Integrationsanforderung:
GET http://petstore-demo-endpoint.execute-api.com/petstore/pets/1 HTTP/1.1
Die Laufzeitinstanzen der Methode
ANY
und der Proxy-Ressource sind beide gültig. Der Aufruf gibt eine Antwort200 OK
mit der Nutzlast zurück, die das angegebene Haustier enthält, wie vom Backend zurückgegeben. -
Festlegen von
ANY
alsPOST
und{proxy+}
alspets
Vom Frontend initiierte Methodenanforderung:
POST https://4z9giyi2c1.execute-api.us-west-2.amazonaws.com/test/pets HTTP/1.1 Content-Type: application/json Content-Length: ... { "type" : "dog", "price" : 1001.00 }
An das Backend gesendete Integrationsanforderung:
POST http://petstore-demo-endpoint.execute-api.com/petstore/pets HTTP/1.1 Content-Type: application/json Content-Length: ... { "type" : "dog", "price" : 1001.00 }
Die Laufzeitinstanzen der Methode
ANY
und der Proxy-Ressource sind beide gültig. Der Aufruf gibt eine Antwort200 OK
mit der Nutzlast zurück, die das neu erstellte Haustier enthält, wie vom Backend zurückgegeben. -
Festlegen von
ANY
alsGET
und{proxy+}
alspets/cat
Vom Frontend initiierte Methodenanforderung:
GET https://4z9giyi2c1.execute-api.us-west-2.amazonaws.com/test/pets/cat
An das Backend gesendete Integrationsanforderung:
GET http://petstore-demo-endpoint.execute-api.com/petstore/pets/cat
Die Laufzeit-Instance des Proxy-Ressourcenpfads entspricht keinem Backend-Endpunkt und die resultierende Anforderung ist ungültig. Dies hat zur Folge, dass eine Antwort
400 Bad Request
mit der folgenden Fehlermeldung zurückgegeben wird.{ "errors": [ { "key": "Pet2.type", "message": "Missing required field" }, { "key": "Pet2.price", "message": "Missing required field" } ] }
-
Festlegen von
ANY
alsGET
und{proxy+}
alsnull
Vom Frontend initiierte Methodenanforderung:
GET https://4z9giyi2c1.execute-api.us-west-2.amazonaws.com/test
An das Backend gesendete Integrationsanforderung:
GET http://petstore-demo-endpoint.execute-api.com/petstore/pets
Die Zielressource ist der Proxy-Ressource übergeordnet, aber die Laufzeit-Instance der Methode
ANY
ist in der API auf dieser Ressource nicht definiert. Infolgedessen gibt dieseGET
-Anfrage eine403 Forbidden
-Antwort mit derMissing Authentication Token
-Fehlermeldung zurück, die von API Gateway zurückgegeben wird. Wenn die API die MethodeANY
oderGET
in der übergeordneten Ressource (/
) verfügbar macht, gibt der Aufruf eine Antwort404 Not Found
mit der MeldungCannot GET /petstore
zurück, wie vom Backend zurückgegeben.
Wenn die URL des Zielendpunkts ungültig ist oder das HTTP-Verb gültig ist, aber nicht unterstützt wird, gibt das Backend für jede Clientanforderung die Antwort 404 Not Found
zurück. Bei einer nicht unterstützten HTTP-Methode wird eine Antwort 403 Forbidden
zurückgegeben.
Benutzerdefinierte HTTP-API-Integrationen in API Gateway einrichten
Mit der benutzerdefinierten HTTP-Integration haben Sie mehr Kontrolle darüber, welche Daten zwischen einer API-Methode und einer API-Integration übertragen werden sollen und wie Sie diese übertragen. Dies können Sie mithilfe von Daten-Mappings tun.
Als Teil der Einrichtung der Methodenanforderung legen Sie die requestParameters-Eigenschaft für eine Method-Ressource fest. Dies gibt an, welche Methodenanforderungsparameter, die von dem Client bereitgestellt werden, den Integrationsanforderungsparametern oder den geltenden Textkörpereigenschaften zugeordnet werden sollen, bevor sie an den Backend versendet werden. Anschließend legen Sie im Rahmen der Einrichtung der Integrationsanfrage die Eigenschaft requestParameters für die entsprechende Integrationsressource fest, um die parameter-to-parameter Zuordnungen anzugeben. Sie legen auch die requestTemplates-Eigenschaft fest, um die Mapping-Vorlagen anzugeben, eine für jeden unterstützten Inhaltstyp. Die Mapping-Vorlagen weisen Methodenanforderungsparameter oder Textkörper dem Anforderungstextkörper der Integration zu.
In ähnlicher Weise legen Sie im Rahmen der Einrichtung der Methodenantwort die Eigenschaft responseParameters für die Ressource fest. MethodResponse Dies gibt an, welche Methodenantwortparameter, die an den Client gesendet werden sollen, von den Integrationsantwortparametern oder bestimmten geltenden Textkörpereigenschaften zugeordnet werden sollen, die vom Backend zurückgegeben wurden. Anschließend legen Sie im Rahmen der Einrichtung der Integrationsantwort die ResponseParameters-Eigenschaft für die entsprechende IntegrationResponseRessource fest, um die Zuordnungen anzugeben. parameter-to-parameter Sie legen auch die responseTemplates-Zuordnung fest, um die Mapping-Vorlagen anzugeben, eine für jeden unterstützten Inhaltstyp. Die Mapping-Vorlagen weisen Methodenantwortparameter oder Textkörpereigenschaften der Integrationsantwort dem Antworttextkörper der Methode zu.
Weitere Hinweise zum Einrichten von Mapping-Vorlagen finden Sie unter Datentransformationen für REST APIs in Gateway API.