API Gateway 中用於 REST API 的資料轉換
注意
本節說明可搭配非代理整合使用的功能。不過,我們建議您盡可能針對 REST API 使用代理整合。代理整合採用簡化的整合設定,並且可隨著後端演進,而不必縮減現有的設定。如需更多詳細資訊,請參閱 選擇 API Gateway API 整合類型。
如果您使用非代理整合,您可以使用 API Gateway 的兩項功能來轉換方法請求和整合回應。如果方法請求採用與整合請求承載不同的承載格式,則您可以轉換方法請求。如果整合回應傳回的承載格式與方法回應中需要傳回的格式不同,則您可以轉換整合回應。如需有關請求生命週期的詳細資訊,請參閱 REST API 的範例資源。
下列範例說明資料轉換,其中標頭 "x-version:beta"
的 x-version
標頭參數會轉換成 app-version
標頭參數。整合請求中會進行 x-version
到 app-version
的資料轉換。如此一來,整合端點就會收到轉換後的標頭參數值。當整合端點傳回狀態碼時,狀態碼會在方法回應之前,從 200
轉換為 204
。

若要建立資料轉換,您可以使用下列功能:
- 參數映射
-
在參數映射中,您可以修改整合請求 URL 路徑參數、URL 查詢字串參數或 HTTP 標頭值,但無法修改整合請求承載。您也可以修改 HTTP 回應標頭值。使用參數映射建立跨來源資源分享 (CORS) 的靜態標頭值。
您可以在代理和非代理整合的整合請求中使用參數映射,但若要將參數映射用於整合回應,則需要非代理整合。參數映射不需要使用 Velocity 範本語言 (VTL)
編寫任何指令碼。如需更多詳細資訊,請參閱 API Gateway 中 REST API 的參數映射。 - 映射範本轉換
-
在映射範本轉換中,您可以使用映射範本來對應 URL 路徑參數、URL 查詢字串參數、HTTP 標頭,以及整合請求或整合回應內文。映射範本是以 Velocity 範本語言 (VTL)
表達的指令碼,會使用 JSONPath 表達式 並根據 Content-type
標頭套用至承載。您可以使用映射範本執行下列操作:
-
選取哪個資料要使用與 AWS 服務 (例如 Amazon DynamoDB 或 Lambda 函數或 HTTP 端點) 的整合進行傳送。如需更多詳細資訊,請參閱 教學課程:修改 AWS 服務整合的整合請求和回應。
-
有條件地覆寫 API 的整合請求和整合回應參數、建立新的標頭值,以及覆寫狀態碼。如需更多詳細資訊,請參閱 覆寫 API Gateway 中 REST API 的 API 請求和回應參數及狀態碼。
若整合請求內文的
Content-type
標頭沒有相符的映射範本,您也可以指定 API 的行為。這稱為整合傳遞行為。如需更多詳細資訊,請參閱 API Gateway 中 REST API 沒有映射範本時,承載的方法請求行為。 -
選擇參數映射或映射範本轉換
我們建議您盡可能使用參數映射來轉換資料。如果您的 API 要求您變更內文,或要求您根據傳入的整合請求或整合回應執行條件式覆寫和修改,而且您無法使用代理整合,則使用映射範本轉換。