Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Die folgenden Aufgaben zeigen, wie die Binärunterstützung unter Verwendung der API Gateway-REST-API-Aufrufe aktiviert werden kann.
Hinzufügen und Aktualisieren der unterstützten binären Medientypen für eine API
Um API Gateway die Unterstützung eines neuen binären Medientyps zu ermöglichen, müssen Sie den binären Medientyp zur binaryMediaTypes
-Liste der RestApi
-Ressource hinzufügen. Wenn API Gateway beispielsweise JPEG-Bilder verarbeiten soll, müssen Sie eine PATCH
-Anfrage an die RestApi
-Ressource stellen:
PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/image~1jpeg" } ] }
Die MIME-Typ-Spezifikation image/jpeg
, die Teil des path
-Eigenschaftswerts ist, wird als image~1jpeg
kodiert.
Um die unterstützten binären Medientypen zu aktualisieren, ersetzen oder entfernen Sie sie aus der Liste binaryMediaTypes
der RestApi
-Ressource. Wenn Sie beispielsweise die Binärunterstützung von JPEG-Dateien in Rohbytes ändern möchten, senden Sie wie folgt eine PATCH
-Anforderung an die RestApi
-Ressource:
PATCH /restapis/<restapi_id> { "patchOperations" : [{ "op" : "replace", "path" : "/binaryMediaTypes/image~1jpeg", "value" : "application/octet-stream" }, { "op" : "remove", "path" : "/binaryMediaTypes/image~1jpeg" }] }
Konfigurieren der Konvertierung von Anforderungsnutzlasten
Wenn der Endpunkt eine binäre Eingabe erfordert, legen Sie die contentHandling
-Eigenschaft der Integration
-Ressource auf CONVERT_TO_BINARY
fest. Um dies zu tun, senden Sie eine PATCH
-Anforderung wie folgt:
PATCH /restapis/<restapi_id>/resources/<resource_id>/methods/<http_method>/integration { "patchOperations" : [ { "op" : "replace", "path" : "/contentHandling", "value" : "CONVERT_TO_BINARY" }] }
Konfigurieren der Konvertierung von Antwortnutzlasten
Wenn der Client das Ergebnis als binäres Blob anstelle der base64-kodierten Nutzlast, die vom Endpunkt zurückgegeben wird, akzeptiert, legen Sie die contentHandling
-Eigenschaft für die IntegrationResponse
-Ressource auf CONVERT_TO_BINARY
fest. Um dies zu tun, senden Sie eine PATCH
-Anforderung wie folgt:
PATCH /restapis/<restapi_id>/resources/<resource_id>/methods/<http_method>/integration/responses/<status_code> { "patchOperations" : [ { "op" : "replace", "path" : "/contentHandling", "value" : "CONVERT_TO_BINARY" }] }
Konvertieren von Binärdaten in Textdaten
Gehen Sie wie folgt vor, um Binärdaten als JSON-Eigenschaft der Eingabe an AWS Lambda oder Kinesis über API Gateway zu senden:
-
Aktivieren Sie die Unterstützung binärer Nutzlasten der API durch Hinzufügen des neuen binären Medientyps
application/octet-stream
zur ListebinaryMediaTypes
der API.PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/application~1octet-stream" } ] }
-
Legen Sie
CONVERT_TO_TEXT
für die EigenschaftcontentHandling
derIntegration
-Ressource fest und geben Sie eine Mapping-Vorlage an, um die base64-kodierte Zeichenfolge der Binärdaten einer JSON-Eigenschaft zuzuweisen. Im folgenden Beispiel ist die JSON-Eigenschaftbody
und$input.body
enthält die base64-kodierte Zeichenfolge.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\"}" } ] }
Konvertieren von Textdaten in eine binäre Nutzlast
Angenommen, eine Lambda-Funktion gibt eine Bilddatei als base64-kodierte Zeichenfolge zurück. Gehen Sie wie folgt vor, um diese Binärausgabe über API Gateway an den Client zu übergeben:
-
Aktualisieren Sie die Liste
binaryMediaTypes
der API durch Hinzufügen des binären Medientypsapplication/octet-stream
, sofern dieser noch nicht in der Liste enthalten ist.PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/application~1octet-stream", }] }
-
Legen Sie die
contentHandling
-Eigenschaft für dieIntegration
-Ressource aufCONVERT_TO_BINARY
fest. Definieren Sie keine Mapping-Vorlage. Wenn Sie keine Mapping-Vorlage definieren, ruft API Gateway die Passthrough-Vorlage auf, um den base64-dekodierten binären Blob als Bilddatei an den Client zurückzugeben.PATCH /restapis/<restapi_id>/resources/<resource_id>/methods/<http_method>/integration/responses/<status_code> { "patchOperations" : [ { "op" : "replace", "path" : "/contentHandling", "value" : "CONVERT_TO_BINARY" } ] }
Übergeben einer binären Nutzlast
Um ein Bild in einem Amazon S3-Bucket mit API Gateway zu speichern, gehen Sie wie folgt vor:
-
Aktualisieren Sie die Liste
binaryMediaTypes
der API durch Hinzufügen des binären Medientypsapplication/octet-stream
, sofern dieser noch nicht in der Liste enthalten ist.PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/application~1octet-stream" } ] }
-
Legen Sie die
contentHandling
-Eigenschaft für dieIntegration
-Ressource aufCONVERT_TO_BINARY
fest. Legen SieWHEN_NO_MATCH
alspassthroughBehavior
-Eigenschaftswert fest, ohne eine Mapping-Vorlage zu definieren. Dadurch wird API Gateway in die Lage versetzt, die Passthrough-Vorlage aufzurufen.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" } ] }