本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
API Gateway 中 WebSocket API 的資料轉換
在 API Gateway 中, WebSocket API 的方法請求可以根據後端的要求,以與對應的整合請求有效負載不同的格式獲取有效負載。同樣地,後端可能會依照前端的預期,傳回與方法回應承載不同的整合回應承載。
API Gateway 可讓您使用對應範本,將承載從方法請求對應到對應的整合請求,以及從整合回應對應到對應的方法回應。您可以指定範本選取表示式,以決定要使用哪個範本來執行必要的資料轉換。
您可以使用資料映射,將 路由請求 中的資料映射至後端整合。如需進一步了解,請參閱 WebSocket APIs在API閘道中設定資料對應。
對應範本和模型
對應範本是以 Velocity 範本語言 (VTL)
根據 JSON 結構描述草稿第 4 版
範本選擇表達式
若要使用對應範本轉換承載,您可以在整合要求或整合回應中指定 WebSocket API 範本選取運算式。此表達式的評估結果會判定輸入或輸出範本 (如有),輸入範本可將請求本文轉換為整合請求本文,輸出範本則可將整合回應本文轉換為路由回應本文。
Integration.TemplateSelectionExpression
支援 ${request.body.jsonPath}
和靜態值。
IntegrationResponse.TemplateSelectionExpression
支援 ${request.body.jsonPath}
、${integration.response.statuscode}
、${integration.response.header.headerName}
、${integration.response.multivalueheader.headerName}
和靜態值。
整合回應選擇表達式
當您設定 WebSocket API 的整合回應時,您可以選擇性地指定整合回應選取項運算式。此運算式會判定整合回傳時應選取的
。此表達式的值目前正受 API Gateway 限制,規則如下。請注意,此表達式只與非代理整合有關;代理整合只要將回應承載回傳給發起人即可,無須建模或修改。IntegrationResponse
此表達式與上述選擇表達式不同,目前支援模式比對格式。此表達式應以斜線包裝。
目前固定的值視
而異:integrationType
-
若是 Lambda 型整合,此值為
$integration.response.body.errorMessage
。 -
若是
HTTP
及MOCK
整合,此值為$integration.response.statuscode
。 -
若是
HTTP_PROXY
及AWS_PROXY
,將不會運用此表達式,因為您請求將承載傳遞給發起人。