Transformações de dados para APIs de WebSocket no API Gateway
No API Gateway, a solicitação de método de uma API WebSocket pode usar uma carga em um formato diferente da carga da solicitação de integração correspondente, conforme exigido no backend. De maneira semelhante, o backend pode retornar uma carga de resposta de integração diferente da carga da resposta do método, conforme esperado pelo front-end.
O API Gateway permite usar modelos de mapeamento para mapear a carga de uma solicitação de método para a solicitação de integração correspondente ou de uma resposta de integração para a resposta de método correspondente. Você especifica uma expressão de seleção de modelo para determinar qual modelo usar para executar as transformações de dados necessárias.
É possível usar mapeamentos de dados para mapear dados de uma solicitação de rota para uma integração de backend. Para saber mais, consulte Configurar o mapeamento de dados para APIs de WebSocket no API Gateway.
Modelos e modelos de mapeamento
Um modelo de mapeamento é um script expresso em Velocity Template Language (VTL)
A carga pode ter um modelo de dados de acordo com o esquema JSON rascunho 4
Expressões de seleção de modelo
Para transformar uma carga com um modelo de mapeamento, especifique uma expressão de seleção de modelo de API WebSocket em uma solicitação de integração ou resposta de integração. Esta expressão é avaliada para determinar o modelo de entrada ou de saída (se houver) a ser utilizado para transformar o corpo da solicitação no corpo da solicitação de integração (por meio de um modelo de entrada) ou o corpo da resposta de integração para o corpo de resposta de rotas (por meio de um modelo de saída).
Integration.TemplateSelectionExpression
oferece suporte a ${request.body.jsonPath}
e valores estáticos.
IntegrationResponse.TemplateSelectionExpression
oferece suporte a ${request.body.jsonPath}
, ${integration.response.statuscode}
, ${integration.response.header.headerName}
, ${integration.response.multivalueheader.headerName}
e a valores estáticos.
Expressões de seleção de resposta da integração
Quando você define uma resposta de integração para uma API WebSocket, é possível especificar opcionalmente uma expressão de seleção de resposta da integração. Esta expressão determina qual
deve ser selecionada quando uma integração retorna. O valor dessa expressão é atualmente restrito pelo API Gateway, conforme definido abaixo. Observe que essa expressão só é relevante para integrações não proxy; uma integração de proxy simplesmente transmitirá a carga da resposta de volta para o autor da chamada sem modelagem ou modificação.IntegrationResponse
Ao contrário de outras expressões de seleção anteriores, essa expressão é atualmente compatível com um formato de padrão correspondente. A expressão deve ser encapsulada com barras.
Atualmente, o valor é corrigido dependendo do
:integrationType
-
Para integrações baseadas em Lambda, é
$integration.response.body.errorMessage
. -
Para integrações
HTTP
eMOCK
, é$integration.response.statuscode
. -
Para
HTTP_PROXY
eAWS_PROXY
, a expressão não é utilizada porque você está solicitando que a carga seja transmitida para o autor da chamada.