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 Amazon API Gateway die Anforderungsnutzlast für bestimmte Konfigurationen des Content-Type-Headers einer Anforderung, die Liste binaryMediaTypes einer RestApi-Ressource und den Eigenschaftswert contentHandling der Integration-Ressource umwandelt.
| 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 Amazon API Gateway die Anforderungsnutzlast für bestimmte Konfigurationen des Accept-Headers einer Anforderung, die Liste binaryMediaTypes einer RestApi-Ressource und den Eigenschaftswert contentHandling der IntegrationResponse-Ressource umwandelt.
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.