在 API Gateway 中設定整合回應 - Amazon API Gateway

在 API Gateway 中設定整合回應

針對非代理整合,您必須至少設定一個整合回應,並讓它成為預設的回應,才能將後端傳回的結果傳送到用戶端。您可以選擇依現狀傳送結果,或將整合回應資料轉換成方法回應資料,如果它們兩個格式不同。

如需代理整合,API Gateway 會自動將後端輸出當作 HTTP 回應傳送至用戶端。您不用設定整合回應或方法回應。

若要設定整合回應,您要執行下列必要和選用任務:

  1. 指定整合回應資料映射的方法回應 HTTP 狀態碼。這是必要的。

  2. 定義規則表達式選取此整合回應要代表的後端輸出。如果此項目保留空白,此回應是用來擷取所有尚未設定回應的預設回應。

  3. 如有需要,請宣告使用鍵值對組成的映射,將指定的整合回應參數映射到指定的方法回應參數。

  4. 如有需要,請新增內文映射範本,將指定的整合回應承載傳送到指定的方法回應承載。

  5. 如有需要,請指定如何處理二進位承載的類型轉換。

整合回應是封裝後端回應的 HTTP 回應。HTTP 端點的後端回應是 HTTP 回應。整合回應狀態碼可以採用後端傳回的狀態碼,整合回應內文是後端傳回的承載。Lambda 端點的後端回應是從 Lambda 函數傳回的輸出。使用 Lambda 整合,Lambda 函數輸出會傳回為 200 OK 回應。承載可以包含結果當作 JSON 資料,包括 JSON 字串或 JSON 物件,或當作 JSON 物件的錯誤訊息。您可以將規則表達式指派給 selectionPattern 屬性,將錯誤回應映射到適當的 HTTP 錯誤回應。如需 Lambda 函數錯誤回應的詳細資訊,請參閱處理 API Gateway 中的 Lambda 錯誤。使用 Lambda 代理整合,Lambda 函數必須傳回格式如下的輸出:

{ statusCode: "...", // a valid HTTP status code headers: { custom-header: "..." // any API-specific custom header }, body: "...", // a JSON string. isBase64Encoded: true|false // for binary support }

您不必將 Lambda 函數回應映射到其正確的 HTTP 回應。

若要將結果傳回給用戶端,請設定整合回應依現狀將端點回應傳送到對應的方法回應。或者,您可以將端點回應資料映射到方法回應資料。可映射的回應資料包括回應狀態碼、回應標頭參數和回應內文。傳回的狀態碼如果未定義任何方法回應,API Gateway 會傳回 500 錯誤。如需更多詳細資訊,請參閱 使用模型和對應範本