

# Configurar uma resposta de integração da API de WebSocket no API Gateway
<a name="apigateway-websocket-api-integration-responses"></a>

A seção a seguir oferece uma breve visão geral das respostas de integração da API de WebSocket e como configurar uma resposta de integração de uma API de WebSocket. 

**Topics**
+ [Visão geral das respostas de integração](#apigateway-websocket-api-integration-response-overview)
+ [Respostas de integração para comunicação bidirecional](#apigateway-websocket-api-integration-response-for-two-way-communication)
+ [Configurar uma resposta de integração usando o console do API Gateway](#apigateway-websocket-api-integration-response-using-console)
+ [Configurar uma resposta de integração usando a AWS CLI](#apigateway-websocket-api-integration-response-using-awscli)

## Visão geral das respostas de integração
<a name="apigateway-websocket-api-integration-response-overview"></a>

A resposta de integração do API Gateway é uma maneira de modelar e manipular a resposta de um serviço de backend. Existem algumas diferenças na configuração de uma resposta de integração entre uma API REST e uma API WebSocket, mas, conceitualmente, o comportamento é o mesmo.

As rotas do WebSocket podem ser configuradas para comunicação bidirecional ou unidirecional.
+ Quando uma rota está configurada para comunicação bidirecional, uma resposta de integração permite que você configure as transformações na carga útil da mensagem retornada, semelhante às respostas de integração para APIs REST.
+ Se uma rota está configurada para comunicação unidirecional, independentemente de qualquer configuração da resposta de integração, nenhuma resposta será retornada pelo canal do WebSocket após o processamento da mensagem.

 O API Gateway não transmitirá a resposta de back-end para a resposta de rota, a menos que você configure uma resposta de rota. Para saber mais sobre como configurar uma resposta de rota, consulte [Configurar respostas de rotas para APIs de WebSocket no API Gateway](apigateway-websocket-api-route-response.md).

## Respostas de integração para comunicação bidirecional
<a name="apigateway-websocket-api-integration-response-for-two-way-communication"></a>

As integrações podem ser divididas em integrações de *proxy* e *não proxy*.

**Importante**  
Para *integrações de proxy*, o API Gateway transmite automaticamente a saída de backend para o autor da chamada como a carga completa. Não há uma resposta de integração.

Para *integrações não proxy*, você deve configurar ao menos uma resposta de integração:
+ Idealmente, uma de suas respostas de integração deve agir como um genérico quando nenhuma escolha explícita puder ser feita. Este caso padrão é representado pela configuração de uma chave de resposta de integração `$default`.
+ Em todos os outros casos, a chave de resposta de integração funciona como uma expressão regular. É necessário que siga um formato de `"/expression/"`.

Para integrações HTTP não proxy:
+ O API Gateway tentará corresponder o código de status HTTP da resposta do backend. A chave de resposta de integração funcionará como uma expressão regular neste caso. Se não for possível encontrar uma correspondência, `$default` é escolhido como a resposta de integração.
+ A expressão de seleção de modelo, conforme descrito acima, funciona de forma idêntica. Por exemplo:
  + `/2\d\d/`: Recebe e transforma respostas bem-sucedidas
  + `/4\d\d/`: Recebe e transforma erros de solicitação incorreta
  + `$default`: Recebe e transforma todas as respostas inesperadas

Para ter mais informações sobre expressões de seleção de modelo, consulte [Expressões de seleção de modelo](websocket-api-data-transformations.md#apigateway-websocket-api-template-selection-expressions).

## Configurar uma resposta de integração usando o console do API Gateway
<a name="apigateway-websocket-api-integration-response-using-console"></a>

Como configurar uma resposta de integração de rotas para uma API WebSocket usando o console do API Gateway:

1. Faça login no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1.  Selecione sua API de WebSocket e rota.

1. Selecione a guia **Solicitação de integração** e, na seção **Configurações de resposta de integração**, selecione **Criar resposta de integração**.

1. Em **Chave de resposta**, insira um valor que será encontrado na chave de resposta na mensagem de saída após a avaliação da expressão de seleção de resposta. Por exemplo, é possível inserir **/4\$1d\$1d/** para receber e transformar erros de solicitação inválida ou inserir **\$1default** para receber e transformar todas as respostas que correspondam à expressão de seleção do modelo. 

1. Em **Expressão de seleção de modelos**, insira uma expressão de seleção para avaliar a mensagem de saída.

1. Selecione **Criar resposta**.

1. Você também pode definir um modelo de mapeamento para configurar as transformações da carga útil da mensagem retornada. Selecione **Criar modelo**.

1. Insira um nome de chave. Se você estiver selecionando a expressão de seleção de modelo padrão, insira **\$1\$1default**.

1. Em **Modelo de resposta**, insira o modelo de mapeamento no editor de código.

1. Selecione **Criar modelo**.

1. Selecione **Implantar API** para implantar a API.

 Use o comando [ wscat](https://www.npmjs.com/package/wscat) a seguir para se conectar à sua API. Para obter mais informações sobre o `wscat`, consulte [Use `wscat` para se conectar a uma API do WebSocket e enviar mensagens a ela](apigateway-how-to-call-websocket-api-wscat.md). 

```
wscat -c wss://api-id.execute-api.us-east-2.amazonaws.com/test
```

 Quando você chamar sua rota, a carga útil da mensagem retornada deverá ser exibida. 

## Configurar uma resposta de integração usando a AWS CLI
<a name="apigateway-websocket-api-integration-response-using-awscli"></a>

O comando [create-integration-response](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/create-integration-response.html) indicado abaixo cria uma resposta de integração `$default`:

```
aws apigatewayv2 create-integration-response \
    --api-id vaz7da96z6 \
    --integration-id a1b2c3 \
    --integration-response-key '$default'
```