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

2 分的閱讀內容
0

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

簡短說明

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

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

重要事項: 請確定您提供輸入資料做為整合請求承載。最佳做法是使用映射範本以提供承載。如需詳細資訊,請參閱方法與整合之間的映射請求和回應承載

解決方法

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

1.    開啟 API 閘道主控台,然後選擇您的 API。

2.    在資源窗格中,選擇已設定的 HTTP 方法。

注意: 如果為 API 設定了多個 HTTP 方法,請針對每個方法重複步驟 2 到步驟 15。

3.    在方法執行窗格中,選擇方法請求

4.    展開 URL 查詢字串參數下拉式清單,然後選擇新增查詢字串

5.    在名稱欄位中,輸入 pet,然後選擇核取記號圖示。

6.    選擇必要核取方塊。

7.    選擇方法執行窗格。

8.    選擇整合請求

9.    選擇映射範本下拉式清單,然後選擇新增映射範本

10.    在Content-Type欄位中,輸入application/json,然後選擇核取記號圖示。

11.    在出現的快顯視窗中,選擇是,確保此整合安全

12.    對於請求內文傳遞,請選擇未定義範本時 (建議使用)

13.    在映射範本編輯器中,將現有指令碼複製並取代為下列程式碼:

{
     "pet": "$input.params('pet')"
}

注意: 如需詳細資訊,請參閱 $input 變數

14.    選擇儲存,然後選擇部署 API

15.    若要測試 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 閘道主控台,然後選擇您的 API。

2.    在資源窗格中,選擇已設定的 HTTP 方法。

注意: 如果為 API 設定了一個以上的 HTTP 方法,請針對每個方法重複步驟 2 至 10。

3.    在方法執行窗格中,選擇方法請求

4.    展開 URL 查詢字串參數下拉式清單,然後選擇新增查詢字串

5.    在名稱欄位中輸入類型,然後選擇核取記號圖示。

6.    選擇方法執行窗格。

7.    選擇整合請求

8.    展開 URL 查詢字串參數區段。

注意: 依預設,方法請求查詢字串參數會映射至類似名稱的整合請求查詢字串參數。若要檢視此內容,請重新整理 API 閘道主控台頁面。若要將方法請求參數映射至不同的整合請求參數,請先刪除現有的整合請求參數。然後,使用所需的方法請求參數映射表達式新增新的查詢字串。

9.    選擇儲存,然後選擇部署 API

10.    若要測試 API 的新端點,請執行下列 curl 命令:

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

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


相關資訊

教學課程: 使用 Lambda 代理整合建置 Hello World REST API

教學課程: 使用 Lambda 非代理整合建置 API 閘道 REST API

教學課程: 使用 HTTP 代理整合建置 REST API

教學課程: 使用 HTTP 非代理整合建置 REST API