Aktivierung der Binärunterstützung mithilfe des Gateways API REST API - APIAmazon-Gateway

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.

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:

  1. 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" } ] }
  2. Legen Sie CONVERT_TO_TEXT dies auf die contentHandling Eigenschaft der Integration Ressource fest und stellen Sie eine Zuordnungsvorlage bereit, um die Base64-kodierte Zeichenfolge der Binärdaten einer Eigenschaft zuzuweisen. JSON Im folgenden Beispiel ist body 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:

  1. 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", }] }
  2. Legen Sie die contentHandling-Eigenschaft für die Integration-Ressource auf CONVERT_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:

  1. 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" } ] }
  2. Legen Sie die contentHandling-Eigenschaft für die Integration-Ressource auf CONVERT_TO_BINARY fest. Legen Sie WHEN_NO_MATCH als passthroughBehavior-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" } ] }