本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
下列範例示範如何使用 API Gateway 主控台、OpenAPI 和 AWS CloudFormation 範本建立參數映射表達式。如需如何使用參數映射來建立所需 CORS 標頭的範例,請參閱 API Gateway 中 REST API 的 CORS。
範例 1:將方法請求參數映射至整合請求參數
下列範例會將方法請求標頭參數 映射puppies
至整合請求標頭參數 DogsAge0
。
映射方法請求參數
在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway
。 選擇 REST API。
選擇方法。
您的方法必須具有非代理整合。
-
針對方法請求設定,選擇編輯。
選擇 HTTP 請求標頭。
選擇新增標頭。
對於名稱,輸入
puppies
。選擇 Save (儲存)。
-
選擇整合請求索引標籤,然後針對整合請求設定,選擇編輯。
AWS Management Console 會自動
puppies
為您從 新增參數映射method.request.header.puppies
至 ,但您需要變更名稱以符合整合端點預期的請求標頭參數。 -
對於名稱,輸入
DogsAge0
。 選擇 Save (儲存)。
重新部署 API 以使變更生效。
下列步驟說明如何驗證參數映射是否成功。
(選用) 測試參數映射
選擇測試標籤。您可能需要選擇向右箭頭按鈕才能顯示此索引標籤。
針對標頭,輸入
puppies:true
。選擇測試。
在 日誌中,結果應如下所示:
Tue Feb 04 00:28:36 UTC 2025 : Method request headers: {puppies=true} Tue Feb 04 00:28:36 UTC 2025 : Method request body before transformations: Tue Feb 04 00:28:36 UTC 2025 : Endpoint request URI: http://petstore-demo-endpoint.execute-api.com/petstore/pets Tue Feb 04 00:28:36 UTC 2025 : Endpoint request headers: {DogsAge0=true, x-amzn-apigateway-api-id=abcd1234, Accept=application/json, User-Agent=AmazonAPIGateway_aaaaaaa, X-Amzn-Trace-Id=Root=1-abcd-12344}
請求標頭參數已從 變更為
puppies
DogsAge0
。
範例 2:將多個方法請求參數映射至不同的整合請求參數
下列範例會將多值方法請求查詢字串參數映射methodRequestQueryParam
至整合請求查詢字串參數,integrationQueryParam
並將方法請求標頭參數映射methodRequestHeaderParam
至整合請求路徑參數 integrationPathParam
。
映射方法請求參數
在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway
。 選擇 REST API。
選擇方法。
您的方法必須具有非代理整合。
-
針對方法請求設定,選擇編輯。
選擇 URL 查詢字串參數。
選擇新增查詢字串。
對於名稱,輸入
methodRequestQueryParam
。選擇 HTTP 請求標頭。
選擇新增標頭。
對於名稱,輸入
methodRequestHeaderParam
。選擇 Save (儲存)。
-
選擇整合請求索引標籤,然後針對整合請求設定,選擇編輯。
選擇 URL 路徑參數。
選擇新增路徑參數。
-
對於名稱,輸入
integrationPathParam
。 對於映射自,輸入
method.request.header.methodRequestHeaderParam
。這會將您在方法請求中指定的方法請求標頭映射至新的整合請求路徑參數。
選擇 URL 查詢字串參數。
選擇新增查詢字串。
-
對於名稱,輸入
integrationQueryParam
。 對於映射自,輸入
method.request.multivaluequerystring.methodRequestQueryParam
。這會將多值查詢字串參數映射到新的單一值整合請求查詢字串參數。
選擇 Save (儲存)。
重新部署 API 以使變更生效。
範例 3:將欄位從 JSON 請求內文映射至整合請求參數
您也可以使用 JSONPath 表達式,從 JSON body-header
並將部分請求內文映射至名為 的整合請求標頭,如 JSON 表達式所示pet-price
。
若要測試此範例,請提供包含價格類別的輸入,如下所示:
[ { "id": 1, "type": "dog", "price": 249.99 } ]
映射方法請求參數
在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway
。 選擇 REST API。
-
選擇
POST
、PATCH
、PUT
或ANY
方法。您的方法必須具有非代理整合。
-
針對整合請求設定,選擇編輯。
選擇 URL 請求標頭參數。
選擇新增請求標頭參數。
-
對於名稱,輸入
body-header
。 對於映射自,輸入
method.request.body
。這會將方法請求內文映射至新的整合請求標頭參數。
選擇新增請求標頭參數。
-
對於名稱,輸入
pet-price
。 對於映射自,輸入
method.request.body[0].price
。這會將方法請求內文的一部分映射至新的整合請求標頭參數。
選擇 Save (儲存)。
重新部署 API 以使變更生效。
範例 4:將整合回應映射至方法回應
您也可以將整合回應映射至方法回應。下列範例會將整合回應內文映射至名為 的方法回應標頭location
、將整合回應標頭映射x-app-id
至方法回應標頭 id
,並將多值整合回應標頭映射item
至方法回應標頭 items
。
映射整合回應
在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway
。 選擇 REST API。
選擇方法。
您的方法必須具有非代理整合。
-
選擇方法回應索引標籤,然後在回應 200 中選擇編輯。
針對標頭名稱,選擇新增標頭。
建立三個名為
id
、item
和 的標頭location
。選擇 Save (儲存)。
-
選擇整合回應索引標籤,然後針對預設 - 回應,選擇編輯。
在標頭映射下,輸入以下內容。
針對 ID,輸入
integration.response.header.x-app-id
針對項目,輸入
integration.response.multivalueheader.item
針對位置,輸入
integration.response.body.redirect.url
-
選擇 Save (儲存)。
重新部署 API 以使變更生效。