Inhaltstypkonvertierungen 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.

Inhaltstypkonvertierungen in API Gateway

Die Kombination aus den binaryMediaTypes Ihrer API, den Headern in Client-Anfragen und der Integrations-contentHandling-Eigenschaft bestimmt, wie API Gateway Payloads kodiert.

Die folgende Tabelle zeigt, wie API Gateway die Anforderungsnutzlast für bestimmte Konfigurationen des Content-Type Headers einer Anfrage, der binaryMediaTypes Liste einer RestApiRessource und des contentHandling Eigenschaftswerts der Integrationsressource konvertiert.

Nutzlast der Methodenanforderung Content-Type-Header der Anforderung binaryMediaTypes contentHandling Nutzlast der Integrationsanforderung
Textdaten Beliebiger Datentyp Undefined Undefined UTF8-kodierte Zeichenfolge
Textdaten Beliebiger Datentyp Undefined CONVERT_TO_BINARY Base64-dekodiertes binäres Blob
Textdaten Beliebiger Datentyp Undefined CONVERT_TO_TEXT UTF8-kodierte Zeichenfolge
Textdaten Ein Textdatentyp Satz mit übereinstimmenden Medientypen Undefined Textdaten
Textdaten Ein Textdatentyp Satz mit übereinstimmenden Medientypen CONVERT_TO_BINARY Base64-dekodiertes binäres Blob
Textdaten Ein Textdatentyp Satz mit übereinstimmenden Medientypen CONVERT_TO_TEXT Textdaten
Binäre Daten Ein binärer Datentyp Satz mit übereinstimmenden Medientypen Undefined Binäre Daten
Binäre Daten Ein binärer Datentyp Satz mit übereinstimmenden Medientypen CONVERT_TO_BINARY Binäre Daten
Binäre Daten Ein binärer Datentyp Satz mit übereinstimmenden Medientypen CONVERT_TO_TEXT Base64-kodierte Zeichenfolge

Die folgende Tabelle zeigt, wie API Gateway die Antwortnutzlast für bestimmte Konfigurationen des Accept Headers einer Anfrage, der binaryMediaTypes Liste einer RestApiRessource und des contentHandling Eigenschaftswerts der IntegrationResponseRessource konvertiert.

Wichtig

Wenn eine Anfrage mehrere Medientypen in ihrem Accept-Header enthält, berücksichtigt API Gateway nur den ersten Accept-Medientyp. Wenn Sie die Reihenfolge der Accept-Medientypen nicht beeinflussen können und der Medientyp Ihres binären Inhalts nicht der erste in der Liste ist, fügen Sie den ersten Accept-Medientyp in der binaryMediaTypes-Liste Ihrer API hinzu. API Gateway behandelt alle Inhaltstypen in dieser Liste als binär.

Um z. B. eine JPEG-Datei mit einem <img>-Element in einem Browser zu übermitteln, sendet der Browser möglicherweise Accept:image/webp,image/*,*/*;q=0.8 in einer Anforderung. Bei Hinzufügen von image/webp zur Liste binaryMediaTypes erhält der Endpunkt die JPEG-Datei als Binärdatei.

Nutzlast der Integrationsantwort Accept-Header der Anforderung binaryMediaTypes contentHandling Nutzlast der Methodenantwort
Text- oder Binärdaten Ein Texttyp Undefined Undefined UTF8-kodierte Zeichenfolge
Text- oder Binärdaten Ein Texttyp Undefined CONVERT_TO_BINARY Base64-dekodiertes Blob
Text- oder Binärdaten Ein Texttyp Undefined CONVERT_TO_TEXT UTF8-kodierte Zeichenfolge
Textdaten Ein Texttyp Satz mit übereinstimmenden Medientypen Undefined Textdaten
Textdaten Ein Texttyp Satz mit übereinstimmenden Medientypen CONVERT_TO_BINARY Base64-dekodiertes Blob
Textdaten Ein Texttyp Satz mit übereinstimmenden Medientypen CONVERT_TO_TEXT UTF8-kodierte Zeichenfolge
Textdaten Ein Binärtyp Satz mit übereinstimmenden Medientypen Undefined Base64-dekodiertes Blob
Textdaten Ein Binärtyp Satz mit übereinstimmenden Medientypen CONVERT_TO_BINARY Base64-dekodiertes Blob
Textdaten Ein Binärtyp Satz mit übereinstimmenden Medientypen CONVERT_TO_TEXT UTF8-kodierte Zeichenfolge
Binäre Daten Ein Texttyp Satz mit übereinstimmenden Medientypen Undefined Base64-kodierte Zeichenfolge
Binäre Daten Ein Texttyp Satz mit übereinstimmenden Medientypen CONVERT_TO_BINARY Binäre Daten
Binäre Daten Ein Texttyp Satz mit übereinstimmenden Medientypen CONVERT_TO_TEXT Base64-kodierte Zeichenfolge
Binäre Daten Ein Binärtyp Satz mit übereinstimmenden Medientypen Undefined Binäre Daten
Binäre Daten Ein Binärtyp Satz mit übereinstimmenden Medientypen CONVERT_TO_BINARY Binäre Daten
Binäre Daten Ein Binärtyp Satz mit übereinstimmenden Medientypen CONVERT_TO_TEXT Base64-kodierte Zeichenfolge

Bei Umwandlung einer Textnutzlast in ein binäres Blob geht API Gateway davon aus, dass es sich bei den Textdaten um eine base64-kodierte Zeichenfolge handelt, und gibt die Binärdaten als base64-dekodierten Blob zurück. Wenn die Konvertierung fehlschlägt, wird eine 500-Antwort zurückgegeben, die auf einen API-Konfigurationsfehler hinweist. Für eine solche Konvertierung geben Sie keine Mapping-Vorlage an, auch wenn Sie das Pass-Through-Verhalten in der API aktivieren müssen.

Bei der Konvertierung eines binären Payloads in eine Textzeichenfolge wendet API Gateway immer eine base64-Kodierung auf die Binärdaten an. Sie können eine Mapping-Vorlage für eine solche Nutzlast definieren, aber nur auf die base64-kodierte Zeichenfolge in der Mapping-Vorlage durch $input.body zugreifen, wie im folgenden Beispielauszug einer Mapping-Vorlage dargestellt.

{ "data": "$input.body" }

Damit die binäre Nutzlast unverändert übergeben wird, müssen Sie das Pass-Through-Verhalten in der API aktivieren.