API Gateway 中用於 REST API 的資料轉換 - Amazon API Gateway

API Gateway 中用於 REST API 的資料轉換

注意

本節說明可搭配非代理整合使用的功能。不過,我們建議您盡可能針對 REST API 使用代理整合。代理整合採用簡化的整合設定,並且可隨著後端演進,而不必縮減現有的設定。如需更多詳細資訊,請參閱 選擇 API Gateway API 整合類型

如果您使用非代理整合,您可以使用 API Gateway 的兩項功能來轉換方法請求和整合回應。如果方法請求採用與整合請求承載不同的承載格式,則您可以轉換方法請求。如果整合回應傳回的承載格式與方法回應中需要傳回的格式不同,則您可以轉換整合回應。如需有關請求生命週期的詳細資訊,請參閱 REST API 的範例資源

下列範例說明資料轉換,其中標頭 "x-version:beta"x-version 標頭參數會轉換成 app-version 標頭參數。整合請求中會進行 x-versionapp-version 的資料轉換。如此一來,整合端點就會收到轉換後的標頭參數值。當整合端點傳回狀態碼時,狀態碼會在方法回應之前,從 200 轉換為 204

API Gateway 資料轉換圖

若要建立資料轉換,您可以使用下列功能:

參數映射

在參數映射中,您可以修改整合請求 URL 路徑參數、URL 查詢字串參數或 HTTP 標頭值,但無法修改整合請求承載。您也可以修改 HTTP 回應標頭值。使用參數映射建立跨來源資源分享 (CORS) 的靜態標頭值。

您可以在代理和非代理整合的整合請求中使用參數映射,但若要將參數映射用於整合回應,則需要非代理整合。參數映射不需要使用 Velocity 範本語言 (VTL) 編寫任何指令碼。如需更多詳細資訊,請參閱 API Gateway 中 REST API 的參數映射

映射範本轉換

在映射範本轉換中,您可以使用映射範本來對應 URL 路徑參數、URL 查詢字串參數、HTTP 標頭,以及整合請求或整合回應內文。映射範本是以 Velocity 範本語言 (VTL) 表達的指令碼,會使用 JSONPath 表達式並根據 Content-type 標頭套用至承載。

您可以使用映射範本執行下列操作:

若整合請求內文的 Content-type 標頭沒有相符的映射範本,您也可以指定 API 的行為。這稱為整合傳遞行為。如需更多詳細資訊,請參閱 API Gateway 中 REST API 沒有映射範本時,承載的方法請求行為

選擇參數映射或映射範本轉換

我們建議您盡可能使用參數映射來轉換資料。如果您的 API 要求您變更內文,或要求您根據傳入的整合請求或整合回應執行條件式覆寫和修改,而且您無法使用代理整合,則使用映射範本轉換。