本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
了解對應範本
在 API Gateway 中,API 的方法請求或回應可從整合請求或回應中取得不同格式的承載。
您可以轉換資料:
使承載符合 API 指定的格式。
覆寫 API 請求與回應參數和狀態碼。
傳回用戶端選取的回應標頭。
在 HTTP Proxy 或 Proxy 的方法要求中,建立路徑參數、查詢字串參數或 AWS 服務 標頭參數的關聯。
選取要使用整合傳送的資料 AWS 服務,例如 Amazon DynamoDB 或 Lambda 函數或 HTTP 端點。
您可以使用對應範本轉換資料。對應範本是以 Velocity 範本語言 (VTL)
下列範例顯示資料轉換的輸入資料、對應範本以及輸出PetStore 資料
輸入資料 |
|
對應範本 |
|
輸出資料 |
|
下圖顯示此對應範本的詳細資訊。
$inputRoot
變數代表上一節中原始 JSON 資料的根物件。指令以#
符號開始。foreach
迴圈逐一處理原始 JSON 資料中的每個物件。描述是來自原始 JSON 資料的寵物
id
和type
串連。askingPrice
是price
(來自原始 JSON 資料的價格)。
1 #set($inputRoot = $input.path('$')) 2 [ 3 #foreach($elem in $inputRoot) 4 { 5 "description" : "Item $elem.id is a $elem.type.", 6 "askingPrice" : $elem.price 7 }#if($foreach.hasNext),#end 8 #end 9 ]
在此對應範本中:
-
在第 1 行,
$inputRoot
變數代表上一節中原始 JSON 資料的根物件。指令以#
符號開始。 -
在第 3 行,
foreach
迴圈逐一處理原始 JSON 資料中的每個物件。 -
在第 5 行,
description
是來自原始 JSON 資料的寵物id
和type
串連。 -
在第 6 行,
askingPrice
是price
(來自原始 JSON 資料的價格)。
如需 Velocity 範本語言的詳細資訊,請參閱 Apache Velocity - VTL Reference
對應範本假設基礎資料屬於 JSON 物件。它不需要定義資料模型。不過,輸出資料的模型允許以語言特定物件的形式傳回先前的資料。如需詳細資訊,請參閱 了解資料模型。
複雜的對應範本
您也可以建立更複雜的對應範本。下列範例說明用來判斷是否養得起寵物的參考串連和取捨點 (100)。
輸入資料 |
|
對應範本 |
|
輸出資料 |
|
如需更複雜的模型,請參閱範例相簿 相片範例。