Tipi di supporti binari per REST APIs in API Gateway - Amazon API Gateway

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-Typeintestazione della richiesta in entrata corrisponde a una voce dell'binaryMediaTypeselenco, 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'binaryMediaTypeselenco della RestApirisorsa. Se questa proprietà e la contentHandling 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 delle binaryMediaTypes voci e che i comportamenti passthrough siano abilitati per. API

  • Imposta la contentHandling proprietà della risorsa. IntegrationResponse La contentHandling proprietà, l'Acceptintestazione nelle richieste dei client e la binaryMediaTypes 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'Acceptintestazione, 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'binaryMediaTypeselenco. 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'binaryMediaTypeselenco, 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