使用 API Gateway 主控台啟用模擬整合 - Amazon API 网关

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

使用 API Gateway 主控台啟用模擬整合

您必須在 API Gateway 中有可用的方法。請遵循中的說明進行教學課程:使RESTAPI用HTTP非代理整合建立

  1. 選擇 API 資源,並選擇建立方法

    若要建立方法,請執行下列動作:

    1. 針對方法類型,選取某個方法。

    2. 針對整合類型,選取模擬

    3. 選擇建立方法

    4. 方法請求索引標籤上,針對方法請求設定,選擇編輯

    5. 選擇 URL 查詢字串參數。選擇新增查詢字串,然後針對名稱輸入 scope。這個查詢參數會判斷發起人是否為內部。

    6. 選擇儲存

  2. 方法回應索引標籤上,選擇建立回應,然後執行下列動作:

    1. 針對 HTTP 狀態,輸入 500

    2. 選擇儲存

  3. 整合請求索引標籤上,針對整合請求設定,選擇編輯

  4. 選擇對應範本,然後執行下列動作:

    1. 選擇新增對應範本

    2. 針對內容類型,輸入 application/json

    3. 針對範本內文,輸入下列內容:

      { #if( $input.params('scope') == "internal" ) "statusCode": 200 #else "statusCode": 500 #end }
    4. 選擇儲存

  5. 整合回應索引標籤上,針對預設 - 回應選擇編輯

  6. 選擇對應範本,然後執行下列動作:

    1. 針對內容類型,輸入 application/json

    2. 針對範本內文,輸入下列內容:

      { "statusCode": 200, "message": "Go ahead without me" }
    3. 選擇儲存

  7. 選擇建立回應

    若要建立 500 回應,請執行下列動作:

    1. 對於 HTTP 狀態 regex,輸入 5\d{2}

    2. 針對方法回應狀態,選取 500

    3. 選擇儲存

    4. 針對 5\d{2} - 回應,選擇編輯

    5. 選擇對應範本,然後選擇新增對應範本

    6. 針對內容類型,輸入 application/json

    7. 針對範本內文,輸入下列內容:

      { "statusCode": 500, "message": "The invoked method is not supported on the API resource." }
    8. 選擇儲存

  8. 選擇測試標籤。您可能需要選擇向右箭頭按鈕才能顯示此索引標籤。若要測試模擬整合,請執行下列動作:

    1. 查詢字串下,輸入 scope=internal。選擇 Test (測試)。測試結果顯示:

      Request: /?scope=internal Status: 200 Latency: 26 ms Response Body { "statusCode": 200, "message": "Go ahead without me" } Response Headers {"Content-Type":"application/json"}
    2. Query strings 下輸入 scope=public,或將其空白。選擇 Test (測試)。測試結果顯示:

      Request: / Status: 500 Latency: 16 ms Response Body { "statusCode": 500, "message": "The invoked method is not supported on the API resource." } Response Headers {"Content-Type":"application/json"}

您也可以在模擬整合回應中傳回標頭,方法是先將標頭新增至方法回應,然後在整合回應中設定標頭映射。事實上,這就是 API Gateway 主控台透過傳回 CORS 必要標頭來啟用 CORS 支援的作法。