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à.
Abilitazione del supporto binario tramite l'API REST API Gateway
Le seguenti attività mostrano come abilitare il supporto binario tramite le chiamate dell'API REST API Gateway.
Argomenti
Aggiungi e aggiorna i tipi di supporti binari esistenti per un'API
Per fare in modo che API Gateway utilizzi un nuovo tipo di supporto binario, devi aggiungerlo all'elenco binaryMediaTypes della risorsa RestApi. Ad esempio, per fare in modo che API Gateway gestisca le immagini JPEG, invia una richiesta PATCH alla risorsa RestApi:
PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/image~1jpeg" } ] }
La specifica di tipo MIME di image/jpeg, parte del valore della proprietà path, viene ignorata come image~1jpeg.
Per aggiornare i tipi di supporto binario utilizzati, sostituisci o elimina i tipi di supporto dall'elenco binaryMediaTypes della risorsa RestApi. Ad esempio, per cambiare il supporto binario dai file JPEG ai byte non elaborati, invia una richiesta PATCH alla risorsa RestApi, come segue.
PATCH /restapis/<restapi_id> { "patchOperations" : [{ "op" : "replace", "path" : "/binaryMediaTypes/image~1jpeg", "value" : "application/octet-stream" }, { "op" : "remove", "path" : "/binaryMediaTypes/image~1jpeg" }] }
Configurazione delle conversioni dei payload delle richieste
Se l'endpoint richiede un input binario, imposta la proprietà contentHandling della risorsa Integration su CONVERT_TO_BINARY. A tale scopo, invia una richiesta PATCH, come segue:
PATCH /restapis/<restapi_id>/resources/<resource_id>/methods/<http_method>/integration { "patchOperations" : [ { "op" : "replace", "path" : "/contentHandling", "value" : "CONVERT_TO_BINARY" }] }
Configurazione delle conversioni dei payload delle risposte
Se il client accetta il risultato come BLOB binario invece del payload con codifica base64 restituito dall'endpoint, imposta la proprietà contentHandling della risorsa IntegrationResponse su CONVERT_TO_BINARY. A questo scopo, inviare una richiesta PATCH, come segue:
PATCH /restapis/<restapi_id>/resources/<resource_id>/methods/<http_method>/integration/responses/<status_code> { "patchOperations" : [ { "op" : "replace", "path" : "/contentHandling", "value" : "CONVERT_TO_BINARY" }] }
Conversione dei dati binari in dati di testo
Per inviare dati binari come proprietà JSON dell'input a AWS Lambda o Kinesis tramite API Gateway, procedi come segue:
-
Abilita il supporto del payload binario dell'API aggiungendo il nuovo tipo di supporto binario di
application/octet-streamall'elencobinaryMediaTypesdell'API.PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/application~1octet-stream" } ] } -
Imposta
CONVERT_TO_TEXTper la proprietàcontentHandlingdella risorsaIntegratione fornisci un modello di mappatura per assegnare la stringa con codifica base64 dei dati binari alla proprietà JSON. Nell'esempio che segue, la proprietà JSON èbodye$input.bodydetiene la stringa con codifica base64.PATCH /restapis/<restapi_id>/resources/<resource_id>/methods/<http_method>/integration { "patchOperations" : [ { "op" : "replace", "path" : "/contentHandling", "value" : "CONVERT_TO_TEXT" }, { "op" : "add", "path" : "/requestTemplates/application~1octet-stream", "value" : "{\"body\": \"$input.body\"}" } ] }
Conversione dei dati di testo in un payload binario
Supponiamo che una funzione Lambda restituisca un file di immagine come stringa con codifica base64. Per passare questo output binario al client tramite API Gateway, procedi come segue:
-
Aggiorna l'elenco
binaryMediaTypesdell'API aggiungendo il tipo di supporto binario diapplication/octet-stream, se non è già presente nell'elenco.PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/application~1octet-stream", }] } -
Imposta la proprietà
contentHandlingdella risorsaIntegrationsuCONVERT_TO_BINARY. Non definire un modello di mappatura. Se non definisci un modello di mappatura, API Gateway chiede al modello passthrough di restituire il BLOB binario con codifica base64 come file immagine al client.PATCH /restapis/<restapi_id>/resources/<resource_id>/methods/<http_method>/integration/responses/<status_code> { "patchOperations" : [ { "op" : "replace", "path" : "/contentHandling", "value" : "CONVERT_TO_BINARY" } ] }
Passaggio attraverso un payload binario
Per memorizzare un'immagine in un bucket Amazon S3 tramite API Gateway, procedi come segue:
-
Aggiorna l'elenco
binaryMediaTypesdell'API aggiungendo il tipo di supporto binario diapplication/octet-stream, se non è già presente nell'elenco.PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/application~1octet-stream" } ] } -
Imposta la proprietà
contentHandlingdella risorsaIntegrationsuCONVERT_TO_BINARY. ImpostaWHEN_NO_MATCHcome il valore della proprietàpassthroughBehaviorsenza definire un modello di mappatura. Ciò consente ad API Gateway di richiamare il modello passthrough.PATCH /restapis/<restapi_id>/resources/<resource_id>/methods/<http_method>/integration { "patchOperations" : [ { "op" : "replace", "path" : "/contentHandling", "value" : "CONVERT_TO_BINARY" }, { "op" : "replace", "path" : "/passthroughBehaviors", "value" : "WHEN_NO_MATCH" } ] }