Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Les tâches suivantes montrent comment activer la prise en charge binaire à l’aide des appels de l’API REST API Gateway.
Rubriques
Ajout et mise à jour des types de supports binaires d’une API
Pour permettre à API Gateway de prendre en charge un nouveau type de support binaire, vous devez ajouter le type de support binaire à la liste binaryMediaTypes
de la ressource RestApi
. Par exemple, pour qu’API Gateway gère les images JPEG, envoyez une demande PATCH
à la ressource RestApi
:
PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/image~1jpeg" } ] }
La spécification de type MIME de image/jpeg
qui fait partie de la valeur de propriété path
est échappée comme image~1jpeg
.
Pour mettre à jour les types de supports binaires pris en charge, remplacez ou supprimez le type de support de la liste binaryMediaTypes
de la ressource RestApi
. Par exemple, pour remplacer la prise en charge binaire des fichiers JPEG par celle des octets bruts, soumettez une demande PATCH
à la ressource RestApi
, comme suit :
PATCH /restapis/<restapi_id> { "patchOperations" : [{ "op" : "replace", "path" : "/binaryMediaTypes/image~1jpeg", "value" : "application/octet-stream" }, { "op" : "remove", "path" : "/binaryMediaTypes/image~1jpeg" }] }
Configuration des conversions de charge utile de la demande
Si le point de terminaison nécessite une entrée binaire, définissez la propriété contentHandling
de la ressource Integration
sur CONVERT_TO_BINARY
. Pour ce faire, présentez une PATCH
demande, comme suit :
PATCH /restapis/<restapi_id>/resources/<resource_id>/methods/<http_method>/integration { "patchOperations" : [ { "op" : "replace", "path" : "/contentHandling", "value" : "CONVERT_TO_BINARY" }] }
Configuration des conversions de charge utile pour la réponse
Si le client accepte le résultat comme blob binaire au lieu de la charge utile encodée en base64 renvoyée par le point de terminaison, définissez la propriété contentHandling
de la ressource IntegrationResponse
sur CONVERT_TO_BINARY
. Pour ce faire, soumettez une demande PATCH
, comme suit :
PATCH /restapis/<restapi_id>/resources/<resource_id>/methods/<http_method>/integration/responses/<status_code> { "patchOperations" : [ { "op" : "replace", "path" : "/contentHandling", "value" : "CONVERT_TO_BINARY" }] }
Conversion des données binaires en données de texte
Pour envoyer des données binaires sous forme de propriété JSON de l'entrée à AWS Lambda ou à Kinesis via API Gateway, procédez comme suit :
-
Activez la prise en charge de la charge utile binaire de l’API en ajoutant le nouveau type de support binaire de
application/octet-stream
à la liste de l’APIbinaryMediaTypes
.PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/application~1octet-stream" } ] }
-
Définissez
CONVERT_TO_TEXT
sur la propriétécontentHandling
de la ressourceIntegration
et fournissez fournir un modèle de mappage pour attribuer la chaîne encodée en base64 des données binaires à une propriété JSON. Dans l’exemple suivant, la propriété JSON estbody
et$input.body
contient la chaîne encodée en 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\"}" } ] }
Conversion des données de texte en charge utile binaire
Supposons qu’une fonction Lambda renvoie un fichier d’image sous forme de chaîne encodée en base64. Pour transmettre cette sortie binaire au client via API Gateway, procédez comme suit :
-
Mettez à jour la liste
binaryMediaTypes
de l’API en ajoutant le type de support binaire deapplication/octet-stream
, s’il n’est pas déjà dans la liste.PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/application~1octet-stream", }] }
-
Définissez la propriété
contentHandling
de la ressourceIntegration
surCONVERT_TO_BINARY
. Ne définissez pas de modèle de mappage. Si vous ne définissez pas de modèle de mappage, API Gateway appelle le modèle de relais pour renvoyer le blob binaire encodé en base64 sous forme de fichier image au client.PATCH /restapis/<restapi_id>/resources/<resource_id>/methods/<http_method>/integration/responses/<status_code> { "patchOperations" : [ { "op" : "replace", "path" : "/contentHandling", "value" : "CONVERT_TO_BINARY" } ] }
Passage via une charge utile binaire
Pour stocker une image dans un compartiment Amazon S3 à l’aide d’API Gateway, procédez comme suit :
-
Mettez à jour la liste
binaryMediaTypes
de l’API en ajoutant le type de support binaire deapplication/octet-stream
, s’il n’est pas déjà dans la liste.PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/application~1octet-stream" } ] }
-
Sur la propriété
contentHandling
de la ressourceIntegration
, définissezCONVERT_TO_BINARY
. DéfinissezWHEN_NO_MATCH
comme valeur de propriétépassthroughBehavior
sans définir de modèle de mappage. Cela permet à API Gateway d’appeler le modèle de relais.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" } ] }