使用 API Gateway 主控台啟用二進位支援 - Amazon API Gateway

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 API Gateway 主控台啟用二進位支援

本節說明如何使用 API Gateway 主控台來啟用二進位支援。舉例來說,我們使用與 Amazon S3 整合的 API。我們將重點放在設定支援的媒體類型,以及指定應該如何處理承載的作業上。如需如何建立與 Amazon S3 整合之 API 的詳細資訊,請參閱教學課程:將 REST API 建立為 Amazon S3 代理伺服器

使用 API Gateway 主控台啟用二進位支援
  1. 設定 API 的二進位媒體類型:

    1. 建立新的 API 或選擇現有的 API。在此範例中,我們將 API 命名為 FileMan

    2. 在主導覽面板中所選取的 API 下,選擇 API 設定

    3. API 設定窗格的二進位媒體類型區段中,選擇管理媒體類型

    4. 選擇新增二進位媒體類型

    5. 在輸入文字欄位中,輸入必要的媒體類型,例如 image/png。如果需要,請重複此步驟來新增更多媒體類型。若要支援所有二進位媒體類型,請指定 */*

    6. 選擇儲存變更

  2. 設定如何處理 API 方法的訊息承載:

    1. 在 API 中建立新的資源或選擇現有的資源。在此範例中,我們使用 /{folder}/{item} 資源。

    2. 在資源上建立新的方法或選擇現有的方法。舉例來說,我們使用與 Amazon S3 中 GET /{folder}/{item} 動作整合的 Object GET 方法。

    3. 針對內容處理,選擇一個選項。

      在 API Gateway 主控台中設定 GET 方法。

      如果您不想要在用戶端與後端接受相同的二進位格式時轉換本文,請選擇傳遞。例如,當後端需要二進位請求承載以 JSON 屬性傳入時,選擇轉換為文字,以將二進位本文轉換成 Base64 編碼字串。此外,當用戶端提交 Base64 編碼字串且後端需要原始二進位格式時,或是當端點傳回 Base64 編碼字串且用戶端只接受二進位輸出時,選擇轉換為二進位

    4. 針對請求內文傳遞,選擇未定義範本時 (建議)以在請求內文上啟用傳遞行為。

      您也可以選擇永不。這意味著 API 將拒絕 content-types 沒有對應範本的資料。

    5. 在整合請求中保留傳入請求的 Accept 標頭。如果您將 contentHandling 設定為 passthrough 並想要在執行階段覆寫該設定,則應該這麼做。

      在整合請求中保留 Accept 標頭。
    6. 若要轉換成文字,請定義對應範本,將 Base64 編碼的二進位資料設為必要的格式。

      以下是要轉換為文字的對應範本範例:

      { "operation": "thumbnail", "base64Image": "$input.body" }

      此對應範本的格式取決於輸入的端點需求。

    7. 選擇儲存