Erstellen Sie Routen für HTTP-APIs in API Gateway - Amazon API 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.

Erstellen Sie Routen für HTTP-APIs in API Gateway

Routen leiten eingehende API-Anfragen an Backend-Ressourcen. Routen bestehen aus zwei Teilen: einer HTTP-Methode und einem Ressourcenpfad, zum Beispie, GET /pets. Sie können spezifische HTTP-Methoden für Ihre Route definieren. Sie können auch die Methode ANY verwenden, um alle Methoden abzugleichen, die Sie nicht für eine Ressource definiert haben. Sie können eine $default-Route erstellen, die als Catch-All für Anfragen fungiert, die nicht mit anderen Routen übereinstimmen.

Anmerkung

API Gateway dekodiert URL-kodierte Anforderungsparameter vor deren Übergabe an Ihre Backend-Integration.

Arbeiten mit Pfadvariablen

Sie können Pfadvariablen in HTTP-API-Routen verwenden.

Beispielsweise fängt die Route GET /pets/{petID} eine GET-Anforderung ab, die ein Client an https://api-id.execute-api.us-east-2.amazonaws.com/pets/6 sendet.

Eine gierige Pfadvariable fängt alle untergeordneten Ressourcen einer Route ab. Um eine gierige Pfadvariable zu erstellen, fügen Sie + dem Variablennamen hinzu, z. B. {proxy+}. Die gierige Pfadvariable muss am Ende des Ressourcenpfads stehen.

Arbeiten mit Abfragezeichenfolgenparametern

API Gateway sendet standardmäßig Abfragezeichenfolgenparameter an Ihre Backend-Integration, sofern sie in einer Anforderung an eine HTTP-API enthalten sind.

Wenn beispielsweise ein Client eine Anforderung an https://api-id.execute-api.us-east-2.amazonaws.com/pets?id=4&type=dog sendet, werden die Abfragezeichenfolgenparameter ?id=4&type=dog an Ihre Integration gesendet.

Arbeiten mit der $default-Route

Die $default-Route fängt Anforderungen ab, die nicht explizit mit anderen Routen in Ihrer API übereinstimmen.

Wenn die $default-Route eine Anforderung empfängt, sendet API Gateway den vollständigen Anforderungspfad an die Integration. Beispielsweise können Sie eine API nur mit einer $default-Route erstellen und sie in der Methode ANY mit dem HTTP-Endpunkt https://petstore-demo-endpoint.execute-api.com integrieren. Wenn Sie eine Anforderung an https://api-id.execute-api.us-east-2.amazonaws.com/store/checkout senden, sendet API Gateway eine Anforderung an https://petstore-demo-endpoint.execute-api.com/store/checkout.

Weitere Informationen zu HTTP-Integrationen finden Sie unter Erstellen Sie HTTP-Proxyintegrationen für HTTP-APIs.

Weiterleiten von API-Anforderungen

Wenn ein Client eine API-Anforderung sendet, bestimmt API Gateway zuerst, an welche Stufe die Anforderung weitergeleitet werden soll. Wenn die Anforderung explizit mit einer Stufe übereinstimmt, sendet API Gateway die Anforderung an diese Stufe. Wenn keine Stufe vollständig mit der Anforderung übereinstimmt, sendet API Gateway die Anforderung an die $default-Stufe. Wenn es keine $default Phase gibt, kehrt die API zurück {"message":"Not Found"} und generiert keine CloudWatch Protokolle.

Nachdem Sie eine Stufe ausgewählt haben, wählt API Gateway eine Route aus. API Gateway wählt die Route mit der spezifischsten Übereinstimmung aus, wobei die folgenden Prioritäten verwendet werden:

  1. Vollständige Übereinstimmung für eine Route und Methode.

  2. Übereinstimmung für eine Route und eine Methode mit einer gierigen Pfadvariable ({proxy+}).

  3. Die $default-Route.

Wenn keine Routen mit einer Anforderung übereinstimmen, gibt API Gateway {"message":"Not Found"} an den Client zurück.

Betrachten Sie beispielsweise eine API mit einer $default-Stufe und den folgenden Beispielrouten:

  1. GET /pets/dog/1

  2. GET /pets/dog/{id}

  3. GET /pets/{proxy+}

  4. ANY /{proxy+}

  5. $default

    In der folgenden Tabelle wird zusammengefasst, wie API Gateway Anforderungen an die Beispielrouten weiterleitet.

Anfrage Ausgewählte Route Erklärung

GET https://api-id.execute-api.region.amazonaws.com/pets/dog/1

GET /pets/dog/1

Die Anforderung entspricht vollständig dieser statischen Route.

GET https://api-id.execute-api.region.amazonaws.com/pets/dog/2

GET /pets/dog/{id}

Die Anforderung stimmt vollständig mit dieser Route überein.

GET https://api-id.execute-api.region.amazonaws.com/pets/cat/1

GET /pets/{proxy+}

Die Anforderung stimmt nicht vollständig mit einer Route überein. Die Route mit einer GET-Methode und einer gierigen Pfadvariablen fängt diese Anforderung ab.

POST https://api-id.execute-api.region.amazonaws.com/test/5

ANY /{proxy+}

Die Methode ANY entspricht allen Methoden, die Sie nicht für eine Route definiert haben. Routen mit gierigen Pfadvariablen haben eine höhere Priorität als die $default-Route.