

# Solucionar problemas com o streaming de respostas no API Gateway
<a name="response-streaming-troubleshoot"></a>

As diretrizes de solução de problemas a seguir podem ajudar a resolver problemas com suas APIs que utilizam streaming de resposta.

## Solução de problemas gerais
<a name="response-streaming-general-troubleshooting"></a>

Você pode usar o [TestInvokeMethod](https://docs.aws.amazon.com/apigateway/latest/api/API_TestInvokeMethod.html) a guia de teste do console para testar a resposta do fluxo. As seguintes considerações podem afetar o uso da invocação de teste para streaming de resposta:
+ Quando você testa seu método, o API Gateway armazena em buffer sua carga útil de resposta transmitida. Depois que qualquer uma das condições a seguir for atendida, o API Gateway exibirá uma resposta única contendo a carga útil armazenada em buffer:
  + A solicitação está completa
  + 35 segundos se passaram
  + Mais de 1 MB de carga útil de resposta foi armazenada em buffer
+ Se transcorrerem mais de 35 segundos antes que seu método exiba um status de resposta HTTP e todos os cabeçalhos, o status da resposta exibido em TestInvokeMethod será 0.
+ O API Gateway não produz nenhum log de execução.

Depois de implantar sua API, você pode testar a resposta do fluxo utilizando um comando curl. É recomendável utilizar a opção `-i` de incluir cabeçalhos da resposta de protocolo na saída. Para ver os dados de resposta à medida que eles chegam, utilize a opção `--no-buffer`.

## Solucionar problemas de cURL
<a name="response-streaming-troubleshoot-curl-error"></a>

Se você estiver testando uma integração e receber o erro `curl: (18) transfer closed with outstanding read data remaining`, verifique se o tempo limite da integração é longo o suficiente. Se você estiver usando uma função do Lambda, precisará atualizar o tempo limite de resposta dela. Para acessar mais informações, consulte [Configurar tempo limite das funções do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-timeout.html).

## Solução de problemas no uso do registro em log do acesso
<a name="response-streaming-troubleshoot-access-logging"></a>

Você pode usar logs de acesso para o estágio da API REST a fim de registrar em log e solucionar problemas em seu fluxo de resposta. Além das variáveis existentes, você pode usar as seguintes variáveis de log de acesso:

`$context.integration.responseTransferMode`  
O modo de transferência de resposta da integração. Ele pode ser `BUFFERED` ou `STREAMED`.

`$context.integration.timeToAllHeaders`  
O tempo entre o momento em que o API Gateway estabelece a conexão de integração e o momento em que recebe todos os cabeçalhos de resposta de integração do cliente.

`$context.integration.timeToFirstContent`  
O tempo entre o momento em que o API Gateway estabelece a conexão de integração e o momento em que recebe os primeiros bytes de conteúdo.

`$context.integration.latency` ou `$context.integrationLatency`  
O momento em que o API Gateway estabelece a conexão de integração e o momento em que o fluxo de resposta de integração é concluído.

A figura a seguir mostra como essas variáveis de log de acesso representam diferentes componentes de um fluxo de resposta.

![\[Variáveis de log de acesso para streaming de resposta no API Gateway\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/images/response-streaming-figure.png)


Para obter mais informações sobre os logs de acesso, consulte [Configurar o registro em log do CloudWatch para APIs REST no API Gateway](set-up-logging.md). Você também pode usar o X-Ray para monitorar seu fluxo de resposta. Para obter mais informações, consulte [Rastrear solicitações de usuário para APIs REST usando o X-Ray no API Gateway](apigateway-xray.md).