跳至內容

如何設定 API 闡道 REST AP,以將查詢字串參數傳遞給後端 Lambda 函數或 HTTP 端點?

2 分的閱讀內容
0

我需要 Amazon API Gateway REST API 將查詢字串參數傳遞給後端 AWS Lambda 函數或 HTTP 端點。

簡短說明

若要設定 REST API 將查詢字串參數傳遞至後端 AWS Lambda 函數,請使用 Lambda 自訂整合

若要將查詢字串參數傳遞至 HTTP 端點,請使用 HTTP 自訂整合

重要: 請確定您提供輸入資料做為整合請求承載。最佳做法是使用對應範本來提供承載。如需詳細資訊,請參閱 API Gateway 中 REST API 的參數對應範例

解決方法

將查詢字串參數傳遞給後端 Lambda 函式

請完成下列步驟:

  1. 開啟 API Gateway console (API 閘道主控台),然後選取您的 API。
  2. Resources (資源) 窗格中,選擇已設定的 HTTP 方法。
    注意: 如果為 API 設定了多個 HTTP 方法,請對每個方法重複這些步驟。
  3. Method Execution (方法執行) 窗格中,請選擇 Method Request (方法請求),然後選擇 Edit (編輯)。
  4. 展開 URL Query String Parameters (網址查詢字串參數) 下拉式清單,然後選擇 Add query string (新增查詢字串)。
  5. Name (名稱) 欄位,輸入 pet
  6. 選擇Required (必要) 核取方塊,然後選擇 Save (儲存)。
  7. 選擇 Integration Request (整合請求) 索引標籤,然後選擇 Edit (編輯)。
  8. 展開 Mapping templates (對應範本),然後選擇 Add mapping template (新增對應範本)。
  9. Content-Type 欄位,輸入 application/json
  10. 在對應範本編輯器中,複製目前指令碼並將其替換為以下程式碼:
{     "pet": "$input.params('pet')"
}

注意: 如需詳細資訊,請參閱輸入變數。 選擇 Save (儲存),然後選擇 Deploy the API (部署 API)。 若要測試 API 的新端點,請執行以下 curl 命令:

curl -X GET https://jp58lnf5vh.execute-api.us-west-2.amazonaws.com/dev/lambda-non-proxy?pet=dog

重要: 確認 curl 命令具有查詢字串參數 pet=dog

將查詢字串參數傳遞給 HTTP 端點

請完成下列步驟:

  1. 開啟 API Gateway console (API 閘道主控台),然後選取您的 API。
  2. Resources (資源) 窗格中,選擇已設定的 HTTP 方法。
    注意: 如果為 API 設定了多個 HTTP 方法,請對每個方法重複這些步驟。
  3. Method Execution (方法執行) 窗格中,選擇 Method Request (方法請求),然後選擇 Edit (編輯)。
  4. 展開 URL Query String Parameters (網址查詢字串參數) 下拉式清單,然後選擇 Add query string (新增查詢字串)。
  5. Name (名稱) 欄位中輸入 type,然後選擇 Save (儲存)。
  6. 選擇 Integration Request (整合請求) 索引標籤,然後選擇 Edit (編輯)。
  7. 展開 URL Query String Parameters (網址查詢字串參數) 區段。
  8. Name (名稱) 欄位,輸入 type
  9. Mapped from (對應來源) 欄位,輸入 method.request.querystring.type
  10. 選擇 Save (儲存),然後選擇 Deploy the API (部署 API)。
  11. 若要測試 API 的新端點,請執行以下 curl 命令:
curl -X GET https://jp58lnf5vh.execute-api.us-west-2.amazonaws.com/dev/http-endpoint?pet=dog

重要: 確認 curl 命令具有查詢字串參數 pet=dog

相關資訊

教學課程: 建立具有 Lambda Proxy 整合的 REST API

教學課程: 建立具有 Lambda 非 Proxy 的 REST API

教學課程: 建立具有 HTTP Proxy 整合的 REST API

教學課程: 建立具有 HTTP 非 Proxy 整合的 REST API