Mappings von Anfrage- und Antwortdaten über die API Gateway-Konsole einrichten - 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.

Mappings von Anfrage- und Antwortdaten über die API Gateway-Konsole einrichten

Um die API Gateway-Konsole zur Definition der Integrationsanfrage/-antwort der API zu verwenden, folgen Sie diesen Anweisungen.

Anmerkung

Für diese Anleitungen müssen die Schritte in API-Integrationsanfrage über die API Gateway-Konsole einrichten bereits abgeschlossen sein.

  1. Wählen Sie im Bereich Ressourcen Ihre Methode aus.

  2. Klicken Sie auf der Registerkarte Integrationsanfrage unter Einstellungen für Integrationsanfragen auf Bearbeiten.

  3. Wählen Sie eine Option für Request body passthrough, um zu konfigurieren, wie der Methodenanforderungstext eines nicht zugewiesenen Inhaltstyps ohne Transformation an die Lambda-Funktion, den HTTP-Proxy oder den Service-Proxy durch die Integrationsanforderung weitergeleitet wird. AWS Es gibt drei Optionen:

    • Wählen Sie Wenn keine Vorlage mit dem angeforderten Inhaltstyp-Header übereinstimmt aus, wenn der Methodenanforderungstext ohne Umwandlung durch die Integrationsanforderung an das Backend weitergereicht werden soll, wenn der Inhaltstyp der Methodenanforderung keiner der den Zuordnungsvorlagen zugeordneten Inhaltstypen entspricht.

      Anmerkung

      Beim Aufruf der API-Gateway-API wählen Sie diese Option aus, indem Sie WHEN_NO_MATCH als passthroughBehavior-Eigenschaftswert für die Integration-Ressource festlegen.

    • Wählen Sie When there are no templates defined (recommended) aus, wenn der Methodenanforderungstext ohne Umwandlung durch die Integrationsanforderung an das Backend übergeben werden soll, falls in der Integrationsanforderung keine Mapping-Vorlage definiert ist. Wenn eine Vorlage definiert und diese Option ausgewählt ist, wird die Methodenanforderung eines nicht zugeordneten Inhaltstyps mit einer Antwort "HTTP 415 Unsupported Media Type" zurückgewiesen.

      Anmerkung

      Beim Aufruf der API Gateway-API wählen Sie diese Option aus, indem Sie WHEN_NO_TEMPLATE als passthroughBehavior-Eigenschaftswert für die Integration-Ressource festlegen.

    • Wählen Sie Never aus, wenn die Methodenanforderung nicht übergeben werden soll, falls der Inhaltstyp der Methodenanforderung keinem der Inhaltstypen entspricht, die mit den in der Integrationsanforderung definierten Mapping-Vorlagen verknüpft sind, oder falls in der Integrationsanforderung keine Mapping-Vorlage definiert ist. Die Methodenanforderung eines nicht zugeordneten Inhaltstyps wird mit einer Antwort "HTTP 415 Unsupported Media Type" zurückgewiesen.

      Anmerkung

      Beim Aufruf der API Gateway-API wählen Sie diese Option aus, indem Sie NEVER als passthroughBehavior-Eigenschaftswert für die Integration-Ressource festlegen.

    Weitere Informationen zu Integrations-Passthrough-Verhalten finden Sie unter Integrations-Pass-Through-Verhalten.

  4. Gehen Sie wie folgt vor, um für einen HTTP-Proxy oder einen AWS Dienstproxy einen Pfadparameter, einen Abfragezeichenfolgenparameter oder einen Header-Parameter, der in der Integrationsanforderung definiert ist, einem entsprechenden Pfadparameter, Abfragezeichenfolgenparameter oder Header-Parameter in der Methodenanforderung des HTTP-Proxys oder AWS Dienstproxys zuzuordnen:

    1. Wählen Sie entweder URL-Pfadparameter, Parameter für URL-Abfragezeichenfolgen oder HTTP-Anforderungs-Header aus und klicken Sie dann entsprechend auf Pfad hinzufügen, Abfragezeichenfolge hinzufügen oder Header hinzufügen.

    2. Geben Sie unter Name den Namen des Pfadparameters, des Abfragezeichenfolgenparameters oder des Header-Parameters im HTTP-Proxy oder AWS Dienstproxy ein.

    3. Geben Sie unter Zugeordnet von den Zuordnungswert für den Pfadparameter, Abfragezeichenfolge-Parameter oder Header-Parameter ein. Verwenden Sie eines der folgenden Formate:

      • method.request.path.parameter-name für einen Pfadparameter namens parameter-name, wie auf der Seite Methodenanforderung definiert.

      • method.request.querystring.parameter-name für einen Abfragezeichenfolgenparameter namens parameter-name, wie auf der Seite Methodenanforderung definiert.

      • method.request.multivaluequerystring.parameter-name für einen mehrwertigen Abfragezeichenfolgenparameter namens parameter-name, wie auf der Seite Methodenanforderung definiert.

      • method.request.header.parameter-name für einen Header-Parameter namens parameter-name, wie auf der Seite Methodenanforderung definiert.

        Alternativ können Sie einen Literalzeichenfolgenwert (in einfachen Anführungszeichen) für einen Integrations-Header festlegen.

      • method.request.multivalueheader.parameter-name für einen mehrwertigen Header-Parameter namens parameter-name, wie auf der Seite Methodenanforderung definiert.

    4. Klicken Sie auf die Schaltfläche Hinzufügen, wenn Sie weitere Parameter hunzufügen möchten.

  5. Wählen Sie Zuordnungsvorlagen aus, um eine Vorlage hinzuzufügen.

  6. Wählen Sie Zuordnungsvorlage hinzufügen aus, um eine Zuordnungsvorlage für eine eingehende Anforderung zu definieren. Geben Sie als Inhaltstyp einen Inhaltstyp ein (z. B. application/json). Geben Sie dann die Zuordnungsvorlage ein. Weitere Informationen finden Sie unter Zuordnungsvorlagen für REST-APIs.

  7. Wählen Sie Save (Speichern) aus.

  8. Sie können eine Integrationsantwort vom Backend einer Methodenantwort der API zuordnen, die an die aufrufende Anwendung zurückgegeben wird. Dies umfasst die Rückkehr von den auf dem Backend verfügbaren zu den vom Client ausgewählten Antwort-Headern und die Umwandlung des Datenformats der Nutzlast der Backend-Antwort in ein von der API vorgegebenes Format. Sie können diese Zuordnung durch die Konfiguration von Methodenantwort und Integrationsantworten vorgeben.

    Gehen Sie wie folgt vor, damit die Methode ein benutzerdefiniertes Antwortdatenformat erhält, das auf dem von der Lambda-Funktion, dem HTTP-Proxy oder dem AWS Dienstproxy zurückgegebenen HTTP-Statuscode basiert:

    1. Wählen Sie Integrationsantworten aus. Klicken Sie entweder auf Bearbeiten für Standard - Antwort, um die Einstellungen für einen HTTP-Antwortcode 200 aus der Methode heraus festzulegen. Alternativ klicken Sie auf Antwort erstellen, um die Einstellungen für einen beliebigen anderen HTTP-Antwortstatuscode aus der Methode heraus festzulegen.

    2. Geben Sie für Lambda-Fehler-Regex (für eine Lambda-Funktion) oder HTTP-Status-Regex (für einen HTTP-Proxy oder AWS Service-Proxy) einen regulären Ausdruck ein, um anzugeben, welche Lambda-Funktionsfehlerzeichenfolgen (für eine Lambda-Funktion) oder HTTP-Antwortstatuscodes (für einen HTTP-Proxy oder AWS Dienstproxy) dieser Ausgabezuordnung zugeordnet werden. Beispiel: Wenn Sie dieses Ausgabe-Mapping alle 2xx-HTTP-Antwortstatuscodes von einem HTTP-Proxy zuordnen möchten, geben Sie „2\d{2} für HTTP status regex ein. Wenn Se eine Fehlermeldung mit „Ungültige Anfrage“ von einer Lambda-Funktion an eine 400 Bad Request-Antwort zurückgegeben werden soll, geben Sie .*Invalid request.* als den Lambda-Fehler-Regex-Ausdruck ein. Wenn jedoch 400 Bad Request für alle nicht zugeordneten Lambda-Fehlermeldungen zurückgegeben werden soll, geben Sie (\n|.)+ für Lambda-Fehler-Regex ein. Dieser letzte reguläre Ausdruck kann als Standardfehlerantwort einer API verwendet werden.

      Anmerkung

      API Gateway verwendet für das Antwort-Mapping Regexe-Anweisungen im Java-Pattern-Stil. Weitere Informationen finden Sie unter Pattern in der OracleDokumentation.

      Die Fehlermuster werden mit der gesamten Zeichenfolge der Eigenschaft errorMessage in der Lambda-Antwort abgeglichen, die von callback(errorMessage) in Node.js oder throw new MyException(errorMessage) in Java gefüllt wird. Außerdem werden die Escape-Zeichen geschützter Zeichen entfernt, bevor der reguläre Ausdruck angewendet wird.

      Wenn Sie als Auswahlmuster zum Filtern der Antworten verwenden, bedenken Sie, dass eine Antwort mit einem Zeilenumbruch ("\n") möglicherweise nicht zu einer Übereinstimmung führt.

    3. Wenn diese Option aktiviert ist, wählen Sie für Methodenantwortstatus den HTTP-Antwortstatuscode aus, den Sie auf der Seite Methodenantwort definiert haben.

    4. Geben Sie unter Header-Zuordnungen einen Zuordnungswert für jeden Header ein, den Sie für den HTTP-Antwortstatuscode auf der Seite Methodenantwort definiert haben. Verwenden Sie für den Mapping value eines der folgenden Formate:

      • integration.response.multivalueheaders.header-namewobei header-name der Name eines mehrwertigen Antwort-Headers aus dem Backend ist.

        Zum Beispiel: um den Date-Header der Backend-Antwort als Timestamp-Header einer API-Methode-Antwort zurückzugeben, enthält die Spalte Response header einen Timestamp-Eintrag und der zugehörige Mapping value sollte auf integration.response.multivalueheaders.Date gesetzt sein.

      • integration.response.header.header-namewobei header-name der Name eines einzelnen Antwort-Headers aus dem Backend ist.

        Zum Beispiel: um den Date-Header der Backend-Antwort als Timestamp-Header einer API-Methode-Antwort zurückzugeben, enthält die Spalte Response header einen Timestamp-Eintrag und der zugehörige Mapping value sollte auf integration.response.header.Date gesetzt sein.

    5. Wählen Sie Zuordnungsvorlagen aus und klicken Sie dann auf Zuordnungsvorlage hinzufügen. Geben Sie im Feld Inhaltstyp den Inhaltstyp der Daten ein, die von der Lambda-Funktion, dem HTTP-Proxy oder dem AWS Dienstproxy an die Methode übergeben werden. Geben Sie dann die Zuordnungsvorlage ein. Weitere Informationen finden Sie unter Zuordnungsvorlagen für REST-APIs.

    6. Wählen Sie Save (Speichern) aus.