

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

# 使用 API Gateway 主控台啟用模擬整合
<a name="how-to-mock-integration-console"></a>

您必須在 API Gateway 中有可用的方法。請遵循中的說明進行[教學：建立具有 HTTP 非代理整合的 REST API](api-gateway-create-api-step-by-step.md)

1. 選擇 API 資源，並選擇**建立方法**。

   若要建立方法，請執行下列動作：

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

   1. 針對**整合類型**，選取**模擬**。

   1. 選擇**建立方法**。

   1. 在**方法請求**索引標籤上，針對**方法請求設定**，選擇**編輯**。

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

   1. 選擇**儲存**。

1. 在**方法回應**索引標籤上，選擇**建立回應**，然後執行下列動作：

   1. 針對 **HTTP 狀態**，輸入 **500**。

   1. 選擇**儲存**。

1. 在**整合請求**索引標籤上，針對**整合請求設定**，選擇**編輯**。

1. 選擇**對應範本**，然後執行下列動作：

   1. 選擇**新增映射範本**。

   1. 針對**內容類型**，輸入 **application/json**。

   1. 針對**範本內文**，輸入下列內容：

      ```
      {
        #if( $input.params('scope') == "internal" )
          "statusCode": 200
        #else
          "statusCode": 500
        #end
      }
      ```

   1. 選擇**儲存**。

1. 在**整合回應**索引標籤上，針對**預設 - 回應**選擇**編輯**。

1. 選擇**對應範本**，然後執行下列動作：

   1. 針對**內容類型**，輸入 **application/json**。

   1. 針對**範本內文**，輸入下列內容：

      ```
      {
          "statusCode": 200,
          "message": "Go ahead without me"
      }
      ```

   1. 選擇**儲存**。

1. 選擇**建立回應**。

   若要建立 500 回應，請執行下列動作：

   1. 對於 **HTTP 狀態 regex**，輸入 **5\$1d\$12\$1**。

   1. 針對**方法回應狀態**，選取 **500**。

   1. 選擇**儲存**。

   1. 針對 **5\$1d\$12\$1 - 回應**，選擇**編輯**。

   1. 選擇**對應範本**，然後選擇**新增對應範本**。

   1. 針對**內容類型**，輸入 **application/json**。

   1. 針對**範本內文**，輸入下列內容：

      ```
      {
          "statusCode": 500,
          "message": "The invoked method is not supported on the API resource."
      }
      ```

   1. 選擇**儲存**。

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

   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"}
      ```

   1. 在 `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 支援的作法。