Transformaciones de datos para las API de WebSocket en API Gateway
En API Gateway, una solicitud de método de API de WebSocket puede aceptar una carga en un formato diferente del de la carga de la solicitud de integración, según requiera el backend. Del mismo modo, el backend puede devolver una carga de respuesta de integración diferente de la carga de respuesta del método que espera el frontend.
API Gateway le permite utilizar plantillas de mapeo para asignar la carga de una solicitud de método a la solicitud de integración correspondiente, y de una respuesta de integración a la respuesta del método correspondiente. Especifique una expresión de selección de plantilla para determinar qué plantilla se utilizará para realizar las transformaciones de datos necesarias.
Puede utilizar asignaciones de datos para asignar datos de una solicitud de ruta a una integración con backend. Para obtener más información, consulte Configuración de asignación de datos para las API de WebSocket en API Gateway.
Plantillas y modelos de asignación
Una plantilla de asignación es un script expresado en Velocity Template Language (VTL)
La carga puede tener un modelo de datos de acuerdo con el esquema JSON, borrador 4
Expresiones de selección de plantilla
Para transformar una carga con una plantilla de mapeo, especifique una expresión de selección de plantilla de API de WebSocket en una solicitud de integración o respuesta de integración. Esta expresión se evalúa para determinar la plantilla de entrada o de salida (si procede) que se va a utilizar para transformar ya sea el cuerpo de la solicitud en el cuerpo de la solicitud de integración (a través de una plantilla de entrada) o el cuerpo de la respuesta de integración en el cuerpo de la respuesta de ruta (a través de una plantilla de salida).
Integration.TemplateSelectionExpression
admite ${request.body.jsonPath}
y valores estáticos.
IntegrationResponse.TemplateSelectionExpression
admite ${request.body.jsonPath}
, ${integration.response.statuscode}
, ${integration.response.header.headerName}
, ${integration.response.multivalueheader.headerName}
y valores estáticos.
Expresiones de selección de respuesta de integración
Al configurar una respuesta de integración para una API de WebSocket, puede especificar si lo desea una expresión de selección de respuesta de integración. Esta expresión determina qué valor de
debe seleccionarse cuando regresa una integración. El valor de esta expresión se encuentra actualmente restringido por API Gateway, tal y como se define a continuación. Tenga en cuenta que esta expresión solo se aplica a las integraciones que no sean de proxy; una integración de proxy simplemente transfiere la carga de respuesta de vuelta al intermediario sin realizar ningún modelado ni modificación.IntegrationResponse
A diferencia del resto de expresiones de selección precedentes, actualmente esta expresión admite un formato de coincidencia de patrones. La expresión debe encerrarse entre barras inclinadas.
Actualmente, el valor es fijo en función de la propiedad
:integrationType
-
Para integraciones basadas en Lambda, es
$integration.response.body.errorMessage
. -
En las integraciones
HTTP
yMOCK
, es$integration.response.statuscode
. -
En
HTTP_PROXY
yAWS_PROXY
, la expresión no se utiliza, ya que se está solicitando que la carga pase hacia el intermediario.