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 richiesta e la risposta delle API possono avere un payload binario o di testo. Il payload di testo è una stringa JSON in codifica UTF-8, mentre un payload binario è rappresentato da tutto ciò che non è un payload di testo. Il payload binario può essere, ad esempio, un file JPEG, un GZip file o un file XML. La configurazione API necessaria per supportare i supporti binari dipende dal fatto che l'API utilizzi integrazioni proxy o non proxy.
Se utilizzate un'integrazione proxy con lo streaming di risposta del payload, non è necessario configurare i tipi di file multimediali binari. Per ulteriori informazioni, consulta Trasmetti in streaming la risposta di integrazione per le integrazioni proxy in API Gateway.
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 la per la propria API. binaryMediaTypes La configurazione binaryMediaTypes dell'API è un elenco di tipi di contenuti che l'API considera 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.
API Gateway utilizza la prima intestazione Accept dai client per determinare se una risposta deve restituire supporti binari. Per restituire un supporto binario quando non è possibile controllare l’ordine dei valori delle intestazioni Accept, ad esempio le richieste da un browser, impostare i tipi di supporti binari dell’API su */*.
Per il codice di esempio, consulta Restituzione di supporti binari da un'integrazione proxy Lambda in Gateway API.
Se utilizzi un'integrazione proxy Lambda con lo streaming di risposta del payload, non è necessario configurare i tipi di media binari. Per ulteriori informazioni, consulta Configura l'integrazione di un proxy Lambda con lo streaming della risposta del payload in API Gateway.
Integrazioni non proxy
Per gestire i payload binari per le integrazioni non proxy, aggiungi i tipi di media all'elenco della binaryMediaTypesrisorsa. RestApi La configurazione binaryMediaTypes dell'API è un elenco di tipi di contenuti che l'API considera come dati binari. In alternativa, puoi impostare le proprietà ContentHandling sull'integrazione e sulle risorse. IntegrationResponse Il valore contentHandling può essere CONVERT_TO_BINARY, CONVERT_TO_TEXT o non definito.
Nota
Per le integrazioni MOCK o private, l’impostazione delle proprietà contentHandling non è supportata nella Console di gestione AWS. È necessario utilizzare AWS CLI CloudFormation, o un SDK per impostare le proprietà. contentHandling
A seconda del valore contentHandling e se l'intestazione Content-Type della risposta o l'intestazione Accept della richiesta in entrata corrisponde a una voce dell'elenco binaryMediaTypes, API Gateway può codificare i byte binari grezzi come stringa con codifica base64, decodificare una stringa con codifica base64 di nuovo in byte grezzi oppure passare il corpo senza alcuna modifica.
Devi configurare l'API come segue per supportare i payload binari per l'API in API Gateway:
-
Aggiungete i tipi di file multimediali binari desiderati all'
binaryMediaTypeselenco della RestApirisorsa. Se questa proprietà e la proprietàcontentHandlingnon sono definite, i payload vengono gestiti come stringhe JSON in codifica UTF-8. -
Indirizzare la proprietà
contentHandlingdella 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 passare un payload binario senza modifiche, è inoltre necessario assicurarsi che
Content-Typecorrisponda a una delle vocibinaryMediaTypese che per l'API siano abilitati i comportamenti passthrough.
-
-
Imposta la
contentHandlingproprietà della IntegrationResponserisorsa. La proprietàcontentHandling, l'intestazioneAcceptnelle richieste del client e i tipibinaryMediaTypescombinati dell'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 API Gateway.
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.
Per informazioni dettagliate su come API Gateway gestisce i payload di testo e binari, consulta Conversioni dei tipi di contenuto in API Gateway.