Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Come posso configurare una REST API di Gateway API per gestire i dati binari tramite un'integrazione proxy Lamba?
Desidero utilizzare un'integrazione proxy AWS Lambda per restituire i dati binari tramite la mia REST API di Gateway Amazon API.
Risoluzione
Per gestire i dati binari con le REST API di Gateway API, è necessario che la funzione Lambda del backend utilizzi il formato di output di una funzione Lambda per l'integrazione proxy.
Nota: le API HTTP di Gateway API gestiscono automaticamente i dati binari.
Utilizza un'integrazione proxy Lambda per restituire i dati binari tramite una REST API di Gateway API
Completa i seguenti passaggi:
- Apri la console Lambda.
- Crea una nuova funzione Lambda.
Nota: per un esempio di funzione Lambda in Python 3, consulta Return binary media from a Lambda proxy integration in API Gateway (Restituzione di supporti binari da un'integrazione proxy Lambda in Gateway API). - Apri la console Gateway API.
- Crea una nuova API REST.
- Per creare un metodo GET per la nuova API, esegui le seguenti operazioni:
Nel pannello Metodi, scegli Crea metodo.
In Tipo di metodo, scegli GET.
Nella sezione / - GET - Setup, per Tipo di integrazione scegli Funzione Lambda.
Attiva Utilizza integrazione proxy Lambda.
Per Funzione Lambda, scegli la regione AWS in cui hai creato la funzione Lambda. Quindi, inserisci il nome della nuova funzione Lambda.
Scegli Crea metodo. - Per API, scegli Impostazioni API.
- In Tipi di supporti binari, scegli Gestisci tipi di supporti, quindi scegli Aggiungi tipo di supporto binario.
- Aggiungi il formato di file, ad esempio image/png o application/pdf.
- Scegli Salva modifiche.
- Distribuisci l'API in una nuova fase.
Nota: per i dati binari, devi impostare la proprietà ;isBase64Encoded su true nell'output della funzione Lambda. La proprietà body deve contenere anche il supporto binario base64-encoded. Per ulteriori informazioni, consulta Binary media types for REST APIs in API Gateway (Tipi di supporti binari per le API REST in Gateway API).
Utilizzo di Postman o cURL per invocare l'API REST per restituire dati binari
Importante: per Postman o cURL, includi l'intestazione Accept nella richiesta API. Il valore dell'intestazione Accept deve corrispondere al formato del file, ad esempio image/png o application/pdf.
Esegui questo comando curl:
curl 'https://exampleRestApiId.execute-api.exampleRegion.amazonaws.com/exampleStageName/' -H 'Accept: image/png'
Nota: nel comando precedente, sostituisci exampleRestApiId con l'identificatore dell'API ed exampleRegion con la regione in cui si trova l'API. Inoltre, sostituisci exampleStageName con il nome della fase dell'API e image/png, con il tipo di file immagine.
Utilizzo di un browser Web per invocare l'API REST per restituire dati binari
I browser Web inviano automaticamente un'intestazione Accept con più valori. Per impostazione predefinita, il primo valore è sempre html/text. Poiché Gateway API accetta solo il primo valore, è necessario aggiungere all'API text/html come un tipo di supporto binario. In caso contrario, si riceve il seguente messaggio di errore:
"The image "https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/" cannot be displayed because it contains errors."
Per aggiungere text/html come tipo di supporto binario a un'API REST, procedi come segue:
- Apri la console Gateway API.
- Seleziona l'API.
- Dal pannello di navigazione, scegli Impostazioni API.
- In Tipi di supporti binari, scegli Gestisci tipi di supporti, quindi scegli Aggiungi tipo di supporto binario.
- Inserisci text/html.
- Scegli Salva modifiche.
- Distribuisci l'API.
Per ulteriori informazioni, consulta Conversioni dei tipi di contenuto in Gateway API.
Informazioni correlate
- Lingua
- Italiano
