Abilitazione del supporto binario tramite il Gateway API REST API - 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à.

Abilitazione del supporto binario tramite il Gateway API REST API

Le seguenti attività mostrano come abilitare il supporto binario utilizzando le REST API chiamate API Gateway.

Aggiungere e aggiornare i tipi di file multimediali binari supportati a un API

Per consentire a API Gateway di supportare un nuovo tipo di supporto binario, è necessario aggiungere il tipo di supporto binario all'binaryMediaTypeselenco della RestApi risorsa. Ad esempio, per fare in modo che API Gateway gestisca JPEG le immagini, inviate una PATCH richiesta alla RestApi risorsa:

PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/image~1jpeg" } ] }

La specifica del MIME tipo image/jpeg che fa parte del valore della path proprietà viene espulsa comeimage~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 modificare il supporto binario dai JPEG file ai byte non elaborati, invia una PATCH richiesta alla RestApi risorsa nel modo seguente:

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 JSON proprietà dell'input a AWS Lambda o Kinesis tramite API Gateway, procedi come segue:

  1. Abilita il supporto per il payload binario di API aggiungendo il nuovo tipo di supporto binario API di application/octet-stream binaryMediaTypes all'elenco.

    PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/application~1octet-stream" } ] }
  2. CONVERT_TO_TEXTImposta la contentHandling proprietà della Integration risorsa e fornisci un modello di mappatura per assegnare la stringa codificata in base64 dei dati binari a una proprietà. JSON Nell'esempio seguente, la JSON proprietà è e contiene la stringa con codifica base64. body $input.body

    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, effettuate le seguenti operazioni:

  1. Aggiorna API l'binaryMediaTypeselenco 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", }] }
  2. Imposta la proprietà contentHandling della risorsa Integration su CONVERT_TO_BINARY. Non definire un modello di mappatura. Se non si definisce un modello di mappatura, API Gateway richiama il modello passthrough per restituire il blob binario decodificato in base64 come file di 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 archiviare un'immagine in un bucket Amazon S3 utilizzando API Gateway, procedi come segue:

  1. Aggiorna API l'binaryMediaTypeselenco 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" } ] }
  2. Imposta la proprietà contentHandling della risorsa Integration su CONVERT_TO_BINARY. Imposta WHEN_NO_MATCH come il valore della proprietà passthroughBehavior senza definire un modello di mappatura. Ciò consente a 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" } ] }