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à.
Tipi di supporti binari per REST APIs in API Gateway
In API Gateway, la API richiesta e la risposta hanno un payload testuale o binario. Un payload di testo è una stringa con UTF-8
codificaJSON. mentre un payload binario è rappresentato da tutto ciò che non è un payload di testo. Il payload binario può essere, ad esempio, un JPEG file, un file o un GZip file. XML La API configurazione richiesta per supportare i supporti binari dipende dal fatto che vengano API utilizzate integrazioni proxy o non proxy.
AWS Lambda integrazioni proxy
Per gestire i payload binari per le integrazioni AWS Lambda proxy, è necessario codificare in base 64 la risposta della funzione. È inoltre necessario configurare il per. binaryMediaTypesAPI La tua binaryMediaTypes
configurazione API è un elenco di tipi di contenuto che API tratti come dati binari. I tipi di supporti binari di esempio includono image/png
o application/octet-stream
. È possibile utilizzare il carattere jolly (*
) per includere più tipi di file multimediali. Ad esempio, */*
include tutti i tipi di contenuti.
Per il codice di esempio, consulta Restituisci supporti binari da un'integrazione proxy Lambda in Gateway API.
Integrazioni non proxy
Per gestire i payload binari per le integrazioni non proxy, aggiungi i tipi di file multimediali all'binaryMediaTypeselenco della risorsa. RestApi
La tua binaryMediaTypes
configurazione API è un elenco di tipi di contenuto che API tratti come dati binari. In alternativa, puoi impostare le contentHandlingproprietà sull'integrazione e sulle IntegrationResponserisorse. Il valore contentHandling
può essere CONVERT_TO_BINARY
, CONVERT_TO_TEXT
o non definito.
A seconda del contentHandling
valore e se l'intestazione della risposta o dell'Content-Type
intestazione della richiesta in entrata corrisponde a una voce dell'binaryMediaTypes
elenco, API Gateway può codificare i byte binari non elaborati come stringa con codifica Base64, decodificare una stringa con codifica Base64 riportandola ai relativi byte non elaborati o passare il corpo senza modifiche. Accept
È necessario configurare quanto segue per supportare API i payload binari per il sistema in Gateway: API API
-
Aggiungete i tipi di file multimediali binari desiderati all'
binaryMediaTypes
elenco della RestApirisorsa. Se questa proprietà e lacontentHandling
proprietà non sono definite, i payload vengono gestiti come UTF -8 stringhe JSON codificate. -
Indirizzare la proprietà
contentHandling
della risorsa Integration.-
Per convertire il payload della richiesta da una stringa con codifica base64 nel relativo BLOB binario, impostare la proprietà su
CONVERT_TO_BINARY
. -
Per convertire il payload della richiesta da un BLOB binario a una stringa con codifica base64, impostare la proprietà su
CONVERT_TO_TEXT
. -
Per passare il payload senza modifiche, lasciare la proprietà indefinita. Per far passare un payload binario senza modifiche, è inoltre necessario assicurarsi che
Content-Type
corrisponda a una dellebinaryMediaTypes
voci e che i comportamenti passthrough siano abilitati per. API
-
-
Imposta la
contentHandling
proprietà della risorsa. IntegrationResponse LacontentHandling
proprietà, l'Accept
intestazione nelle richieste dei client e labinaryMediaTypes
combinazione delle tue API determinano il modo in cui API Gateway gestisce le conversioni dei tipi di contenuto. Per informazioni dettagliate, vedi Conversioni dei tipi di contenuto in Gateway API.
Importante
Quando una richiesta contiene più tipi di file multimediali nell'Accept
intestazione, API Gateway rispetta solo il primo tipo di supporto. Accept
Se non riesci a controllare l'ordine dei tipi di Accept
file multimediali e il tipo di file multimediale dei tuoi contenuti binari non è il primo dell'elenco, aggiungi il primo tipo di Accept
file multimediale nell'binaryMediaTypes
elenco. API APIGateway gestisce tutti i tipi di contenuto in questo elenco come binari.
Ad esempio, per inviare un JPEG file utilizzando un <img>
elemento in un browser, il browser potrebbe inviare Accept:image/webp,image/*,*/*;q=0.8
una richiesta. Aggiungendo image/webp
all'binaryMediaTypes
elenco, l'endpoint riceve il JPEG file come binario.
Per informazioni dettagliate su come API Gateway gestisce i payload di testo e binari, vedere. Conversioni dei tipi di contenuto in Gateway API