Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Conversioni dei tipi di contenuto in API Gateway
La combinazione di binaryMediaTypes dell'API, le intestazioni nelle richieste del client e la proprietà contentHandling di integrazione determinano il modo in cui API Gateway codifica i payload.
La tabella seguente mostra come API Gateway converte il payload della richiesta per configurazioni specifiche dell'Content-Typeintestazione di una richiesta, l'binaryMediaTypeselenco di una RestApirisorsa e il valore della contentHandling proprietà della risorsa di integrazione.
| Payload della richiesta di metodo | Intestazione Content-Type della richiesta |
binaryMediaTypes |
contentHandling |
Payload della richiesta di integrazione |
|---|---|---|---|---|
| Dati di testo | Qualsiasi tipo di dato | Undefined | Undefined | UTF8-encoded stringa |
| Dati di testo | Qualsiasi tipo di dato | Undefined | CONVERT_TO_BINARY |
Base64-decoded blob binario |
| Dati di testo | Qualsiasi tipo di dato | Undefined | CONVERT_TO_TEXT |
UTF8-encoded corda |
| Dati di testo | Un tipo di dati di testo | Imposta con tipi di supporto corrispondenti | Undefined | Dati di testo |
| Dati di testo | Un tipo di dati di testo | Imposta con tipi di supporto corrispondenti | CONVERT_TO_BINARY |
Base64-decoded blob binario |
| Dati di testo | Un tipo di dati di testo | Imposta con tipi di supporto corrispondenti | CONVERT_TO_TEXT |
Dati di testo |
| Dati binari | Un tipo di dati binari | Imposta con tipi di supporto corrispondenti | Undefined | Dati binari |
| Dati binari | Un tipo di dati binari | Imposta con tipi di supporto corrispondenti | CONVERT_TO_BINARY |
Dati binari |
| Dati binari | Un tipo di dati binari | Imposta con tipi di supporto corrispondenti | CONVERT_TO_TEXT |
Base64-encoded corda |
La tabella seguente mostra come API Gateway converte il payload di risposta per configurazioni specifiche dell'Acceptintestazione di una richiesta, l'binaryMediaTypeselenco di una RestApirisorsa e il valore della contentHandling proprietà della risorsa. IntegrationResponse
Importante
Quando una richiesta contiene più tipi di supporto nell'intestazione Accept, API Gateway mantiene la conformità solo con il primo tipo di supporto Accept. Se non è possibile controllare l'ordine dei tipi di supporto Accept e il tipo di supporto del contenuto binario non è il primo dell'elenco, aggiungere il primo tipo di supporto Accept nell'elenco binaryMediaTypes dell'API. API Gateway gestisce tutti i tipi di contenuto in questo elenco come binari.
Ad esempio, per inviare un file JPEG utilizzando un elemento <img> in un browser, il browser potrebbe inviare Accept:image/webp,image/*,*/*;q=0.8 in una richiesta. Aggiungendo image/webp all'elenco binaryMediaTypes, l'endpoint riceve il file JPEG come binario.
| Payload della risposta di integrazione | Intestazione Accept della richiesta |
binaryMediaTypes |
contentHandling |
Payload della risposta del metodo |
|---|---|---|---|---|
| Dati di testo o binari | Un tipo di testo | Undefined | Undefined | UTF8-encoded stringa |
| Dati di testo o binari | Un tipo di testo | Undefined | CONVERT_TO_BINARY |
Base64-decoded macchia |
| Dati di testo o binari | Un tipo di testo | Undefined | CONVERT_TO_TEXT |
UTF8-encoded corda |
| Dati di testo | Un tipo di testo | Imposta con tipi di supporto corrispondenti | Undefined | Dati di testo |
| Dati di testo | Un tipo di testo | Imposta con tipi di supporto corrispondenti | CONVERT_TO_BINARY |
Base64-decoded macchia |
| Dati di testo | Un tipo di testo | Imposta con tipi di supporto corrispondenti | CONVERT_TO_TEXT |
UTF8-encoded corda |
| Dati di testo | Un tipo binario | Imposta con tipi di supporto corrispondenti | Undefined | Base64-decoded macchia |
| Dati di testo | Un tipo binario | Imposta con tipi di supporto corrispondenti | CONVERT_TO_BINARY |
Base64-decoded macchia |
| Dati di testo | Un tipo binario | Imposta con tipi di supporto corrispondenti | CONVERT_TO_TEXT |
UTF8-encoded corda |
| Dati binari | Un tipo di testo | Imposta con tipi di supporto corrispondenti | Undefined | Base64-encoded corda |
| Dati binari | Un tipo di testo | Imposta con tipi di supporto corrispondenti | CONVERT_TO_BINARY |
Dati binari |
| Dati binari | Un tipo di testo | Imposta con tipi di supporto corrispondenti | CONVERT_TO_TEXT |
Base64-encoded corda |
| Dati binari | Un tipo binario | Imposta con tipi di supporto corrispondenti | Undefined | Dati binari |
| Dati binari | Un tipo binario | Imposta con tipi di supporto corrispondenti | CONVERT_TO_BINARY |
Dati binari |
| Dati binari | Un tipo binario | Imposta con tipi di supporto corrispondenti | CONVERT_TO_TEXT |
Base64-encoded corda |
Quando converti un payload di testo in un BLOB binario, API Gateway assume che i dati di testo siano una stringa con codifica base64 e genera un output dei dati binari come BLOB con codifica base64. Se la conversione non va a buon fine, viene restituita una risposta 500 che indica un errore di configurazione dell'API. Non fornisci un modello di mappatura per una conversione di questo tipo, sebbene tu debba abilitare i comportamenti passthrough sull'API.
Quando converti un payload binario in una stringa di testo, API Gateway applica sempre una codifica base64 ai dati binari. Per tale payload puoi definire un modello di mappatura, ma puoi accedere alla stringa con codifica base64 nel modello di mappatura solo attraverso $input.body, come viene mostrato nel seguente estratto di un modello di mappatura di esempio.
{ "data": "$input.body" }
Per fare in modo che il payload binario venga passato senza alcuna modifica, devi abilitare i comportamenti passthrough sull'API.