

# Referência de modelos de mapeamento da API de WebSocket do API Gateway
<a name="apigateway-websocket-api-mapping-template-reference"></a>

Esta seção resume o conjunto de variáveis que são atualmente compatíveis com APIs WebSocket no API Gateway.


| Parâmetro | Descrição | 
| --- | --- | 
| $context.connectionId | Um ID exclusivo para a conexão que pode ser utilizado para fazer uma chamada ao cliente. | 
| $context.connectedAt | O tempo de conexão formatado em [Epoch](https://en.wikipedia.org/wiki/Unix_time). | 
| $context.domainName | Um nome de domínio para a API WebSocket. É possível utilizá-lo para fazer uma chamada ao cliente (em vez de um valor codificado). | 
| $context.eventType | O tipo de evento: `CONNECT`, `MESSAGE` ou `DISCONNECT`. | 
| $context.messageId | Um ID exclusivo do servidor para uma mensagem. Disponível apenas quando o `$context.eventType` é `MESSAGE`. | 
| $context.routeKey | A chave de roteamento selecionada. | 
| $context.requestId | Igual a `$context.extendedRequestId`. | 
| $context.extendedRequestId | Um ID gerado automaticamente para a chamada de API, que contém mais informações úteis para depuração/solução de problemas. | 
| $context.apiId | O identificador que o API Gateway atribui à sua API. | 
| $context.authorizer.principalId | A identificação do usuário principal associada ao token enviado pelo cliente e retornada por uma função do Lambda do autorizador do Lambda do API Gateway (anteriormente conhecido como autorizador personalizado). | 
| $context.authorizer.{{property}} | O valor transformado em string do par de chave/valor especificado do mapa `context` retornado de uma função de autorizador do Lambda do API Gateway. Por exemplo, se o autorizador retornar o seguinte mapa `context`: <pre>"context" : {<br />  "key": "value",<br />  "numKey": 1,<br />  "boolKey": true<br />}</pre><br />chamar `$context.authorizer.key` retornará a string `"value"`, chamar `$context.authorizer.numKey` retornará a string `"1"` e chamar `$context.authorizer.boolKey` retornará a string `"true"`. | 
| $context.error.messageString | O valor citado de $context.error.message, ou seja, "$context.error.message". | 
| $context.error.validationErrorString | Uma string que contém uma mensagem de erro de validação detalhada. | 
| $context.identity.accountId | O ID da conta da AWS associado à solicitação. | 
| $context.identity.apiKey | A chave do proprietário da API associada à solicitação de API habilitada por chave. | 
| $context.identity.apiKeyId | O ID da chave da API associada à solicitação de API habilitada por chave | 
| $context.identity.caller | O identificador principal do agente de chamada que está fazendo a solicitação. | 
| $context.identity.cognitoAuthenticationProvider | Uma lista separada por vírgulas de todos os provedores de autenticação do Amazon Cognito usados pelo autor da chamada que faz a solicitação. Disponível somente se a solicitação foi assinada com credenciais do Amazon Cognito. <br />Por exemplo, para uma identidade de um grupo de usuários do Amazon Cognito, `cognito-idp. {{region}}.amazonaws.com/{{user_pool_id}},cognito-idp.{{region}}.amazonaws.com/{{user_pool_id}}:CognitoSignIn:{{token subject claim}}`<br />Consulte informações sobre os provedores de autenticação do Amazon Cognito disponível em [Using Federated Identities](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html) no *Guia do desenvolvedor do Amazon Cognito*. | 
| $context.identity.cognitoAuthenticationType | O tipo de autenticação do Amazon Cognito do autor da chamada que faz a solicitação. Disponível somente se a solicitação foi assinada com credenciais do Amazon Cognito. Os valores possíveis incluem `authenticated` para identidades autenticadas e `unauthenticated` para identidades não autenticadas. | 
| $context.identity.cognitoIdentityId | O ID de identidade do Amazon Cognito do autor da chamada que faz a solicitação. Disponível somente se a solicitação foi assinada com credenciais do Amazon Cognito. | 
| $context.identity.cognitoIdentityPoolId | O ID do grupo de identidades do Amazon Cognito do autor da chamada que faz a solicitação. Disponível somente se a solicitação foi assinada com credenciais do Amazon Cognito. | 
| $context.identity.sourceIp | O endereço IP de origem da conexão TCP mais próxima que está fazendo a solicitação para o endpoint do API Gateway. | 
| $context.identity.user | O identificador principal do usuário que está fazendo a solicitação. | 
| $context.identity.userAgent | O agente de usuário do autor da chamada da API. | 
| $context.identity.userArn | O Nome do Recurso Amazon (ARN) do usuário efetivo identificado após a autenticação. | 
| $context.requestTime | O horário da solicitação [CLF](https://httpd.apache.org/docs/current/logs.html#common) formatado (dd/MMM/yyyy:HH:mm:ss \+-hhmm). | 
| $context.requestTimeEpoch | O tempo de solicitação formatado em [Epoch](https://en.wikipedia.org/wiki/Unix_time), em milissegundos. | 
| $context.stage | O estágio de implantação da chamada de API (por exemplo, Beta ou Prod). | 
| $context.status | O status da resposta. | 
| $input.body | Retorna a carga bruta como uma string. | 
| $input.json(x) | Essa função avalia uma expressão JSONPath e retorna os resultados como uma string JSON.<br />Por exemplo, `$input.json('$.pets')` retornará uma string JSON que representa a estrutura de animais de estimação.<br />Para obter mais informações sobre o JSONPath, consulte [JSONPath](https://goessner.net/articles/JsonPath/) ou [JSONPath para Java](https://github.com/json-path/JsonPath). | 
| $input.path(x) | Usa uma string de expressão JSONPath (`x`) e retorna uma representação de objeto JSON do resultado. Isso permite que você acesse e manipule elementos da carga nativamente em [Apache Velocity Template Language (VTL)](https://velocity.apache.org/engine/devel/vtl-reference.html).<br />Por exemplo, se a expressão `$input.path('$.pets')` retorna um objeto da seguinte forma:<pre>[<br />  { <br />    "id": 1, <br />    "type": "dog", <br />    "price": 249.99 <br />  }, <br />  { <br />    "id": 2, <br />    "type": "cat", <br />    "price": 124.99 <br />  }, <br />  { <br />    "id": 3, <br />    "type": "fish", <br />    "price": 0.99 <br />  } <br />]</pre><br />`$input.path('$.pets').count()` retornaria `"3"`.<br />Para obter mais informações sobre o JSONPath, consulte [JSONPath](http://goessner.net/articles/JsonPath/) ou [JSONPath para Java](https://github.com/jayway/JsonPath). | 
| $stageVariables.{{<variable\_name>}} | {{<variable\_name>}} representa um nome de variável de estágio. | 
| $stageVariables['{{<variable\_name>}}'] | {{<variable\_name>}} representa qualquer nome de variável de estágio. | 
| ${stageVariables['{{<variable\_name>}}']} | {{<variable\_name>}} representa qualquer nome de variável de estágio. | 
| $util.escapeJavaScript() | Escapa os caracteres em uma string usando regras de string JavaScript. Essa função transformará quaisquer aspas simples comuns (`'`) em aspas com escape (`\'`). No entanto, as aspas simples com escape não são válidas no JSON. Portanto, quando a saída dessa função for usada em uma propriedade JSON, você deverá transformar todas aspas simples (`\'`) com escape de volta para aspas simples comuns (`'`). Isso é mostrado no exemplo a seguir:  <pre> $util.escapeJavaScript({{data}}).replaceAll("\\'","'")</pre>  | 
| $util.parseJson() |  Usa um JSON "transformado em string" e retorna uma representação de objeto do resultado. Você pode usar o resultado dessa função para acessar e manipular elementos da carga nativamente em Apache VTL (Velocity Template Language). Por exemplo, se tiver a seguinte carga: <pre>{"errorMessage":"{\"key1\":\"var1\",\"key2\":{\"arr\":[1,2,3]}}"}</pre><br /> e usar o seguinte modelo de mapeamento <pre>#set ($errorMessageObj = $util.parseJson($input.path('$.errorMessage')))<br />{<br />   "errorMessageObjKey2ArrVal" : $errorMessageObj.key2.arr[0]<br />}<br /></pre><br />Você receberá a seguinte saída:<pre>{<br />   "errorMessageObjKey2ArrVal" : 1<br />}<br /></pre> | 
| $util.urlEncode() | Converte uma string no formato "application/x-www-form-urlencoded". | 
| $util.urlDecode() | Decodifica uma string "application/x-www-form-urlencoded". | 
| $util.base64Encode() | Codifica os dados em uma string codificada em base64. | 
| $util.base64Decode() | Decodifica os dados de uma string codificada em base64. | 