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.
Aktivierung der Binärunterstützung mithilfe des Gateways API REST API
Die folgenden Aufgaben zeigen, wie die Binärunterstützung mithilfe der API REST API Gateway-Aufrufe aktiviert wird.
Themen
- Fügen Sie unterstützte binäre Medientypen hinzu und aktualisieren Sie sie zu einem API
- Konfigurieren der Konvertierung von Anforderungsnutzlasten
- Konfigurieren der Konvertierung von Antwortnutzlasten
- Konvertieren von Binärdaten in Textdaten
- Konvertieren von Textdaten in eine binäre Nutzlast
- Übergeben einer binären Nutzlast
Fügen Sie unterstützte binäre Medientypen hinzu und aktualisieren Sie sie zu einem API
Damit API Gateway einen neuen binären Medientyp unterstützt, müssen Sie den binären Medientyp zur binaryMediaTypes
Liste der RestApi
Ressource hinzufügen. Damit API Gateway beispielsweise JPEG Bilder verarbeiten kann, senden Sie eine PATCH
Anfrage an die RestApi
Ressource:
PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/image~1jpeg" } ] }
Die MIME Typspezifikationimage/jpeg
, die Teil des path
Eigenschaftswerts ist, wird als maskiertimage~1jpeg
.
Um die unterstützten binären Medientypen zu aktualisieren, ersetzen oder entfernen Sie sie aus der Liste binaryMediaTypes
der RestApi
-Ressource. Um beispielsweise die Binärunterstützung von JPEG Dateien auf unformatierte Byte umzustellen, senden Sie eine PATCH
Anfrage an die RestApi
Ressource, und zwar wie folgt:
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 für binäre Payloads von, API indem Sie den neuen binären Medientyp API von
application/octet-stream
binaryMediaTypes
zur Liste hinzufügen.PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/application~1octet-stream" } ] }
-
Legen Sie
CONVERT_TO_TEXT
dies auf diecontentHandling
Eigenschaft derIntegration
Ressource fest und stellen Sie eine Zuordnungsvorlage bereit, um die Base64-kodierte Zeichenfolge der Binärdaten einer Eigenschaft zuzuweisen. JSON Im folgenden Beispiel istbody
und$input.body
enthält die JSON Eigenschaft 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 weiterzuleiten:
-
Aktualisieren Sie die API
binaryMediaTypes
Liste, indem Sie den binären Medientyp von hinzufügenapplication/octet-stream
, falls er nicht bereits 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 Zuordnungsvorlage definieren, ruft API Gateway die Passthrough-Vorlage auf, um den Base64-dekodierten Binär-Blob als Image-Datei 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
Gehen Sie wie folgt vor, um ein Bild mithilfe von API Gateway in einem Amazon S3 S3-Bucket zu speichern:
-
Aktualisieren Sie die API
binaryMediaTypes
Liste, indem Sie den binären Medientyp von hinzufügenapplication/octet-stream
, falls er nicht bereits 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 kann API Gateway die Passthrough-Vorlage aufrufen.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" } ] }