我需要 Amazon API Gateway REST API 將查詢字串參數傳遞給後端 AWS Lambda 函數或 HTTP 端點。
簡短說明
若要設定 REST API 將查詢字串參數傳遞至後端 AWS Lambda 函數,請使用 Lambda 自訂整合。
若要將查詢字串參數傳遞至 HTTP 端點,請使用 HTTP 自訂整合。
重要: 請確定您提供輸入資料做為整合請求承載。最佳做法是使用對應範本來提供承載。如需詳細資訊,請參閱 API Gateway 中 REST API 的參數對應範例。
解決方法
將查詢字串參數傳遞給後端 Lambda 函式
請完成下列步驟:
- 開啟 API Gateway console (API 閘道主控台),然後選取您的 API。
- 在 Resources (資源) 窗格中,選擇已設定的 HTTP 方法。
注意: 如果為 API 設定了多個 HTTP 方法,請對每個方法重複這些步驟。
- 在 Method Execution (方法執行) 窗格中,請選擇 Method Request (方法請求),然後選擇 Edit (編輯)。
- 展開 URL Query String Parameters (網址查詢字串參數) 下拉式清單,然後選擇 Add query string (新增查詢字串)。
- 在 Name (名稱) 欄位,輸入 pet。
- 選擇Required (必要) 核取方塊,然後選擇 Save (儲存)。
- 選擇 Integration Request (整合請求) 索引標籤,然後選擇 Edit (編輯)。
- 展開 Mapping templates (對應範本),然後選擇 Add mapping template (新增對應範本)。
- 在 Content-Type 欄位,輸入 application/json。
- 在對應範本編輯器中,複製目前指令碼並將其替換為以下程式碼:
{ "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 端點
請完成下列步驟:
- 開啟 API Gateway console (API 閘道主控台),然後選取您的 API。
- 在 Resources (資源) 窗格中,選擇已設定的 HTTP 方法。
注意: 如果為 API 設定了多個 HTTP 方法,請對每個方法重複這些步驟。
- 在 Method Execution (方法執行) 窗格中,選擇 Method Request (方法請求),然後選擇 Edit (編輯)。
- 展開 URL Query String Parameters (網址查詢字串參數) 下拉式清單,然後選擇 Add query string (新增查詢字串)。
- 在 Name (名稱) 欄位中輸入 type,然後選擇 Save (儲存)。
- 選擇 Integration Request (整合請求) 索引標籤,然後選擇 Edit (編輯)。
- 展開 URL Query String Parameters (網址查詢字串參數) 區段。
- 在 Name (名稱) 欄位,輸入 type。
- 在 Mapped from (對應來源) 欄位,輸入 method.request.querystring.type。
- 選擇 Save (儲存),然後選擇 Deploy the API (部署 API)。
- 若要測試 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