Solicitações e respostas de streaming

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

O que você aprenderá neste tópico

Depois de ler este tópico, você conhecerá as seguintes informações:

  • O que é o streaming de solicitações e respostas no Apigee Edge.
  • Quando usar o streaming de solicitação e resposta.
  • Como ativar o streaming de solicitações e respostas

O que é streaming de solicitação e resposta?

Por padrão, o streaming HTTP está desativado e os payloads de solicitações e respostas HTTP são gravados em um buffer na memória antes de serem processados pelo pipeline de proxy de API. É possível alterar esse comportamento ativando o streaming. Com o streaming ativado, os payloads de solicitação e resposta são transmitidos sem modificação para o app cliente (para respostas) e o endpoint de destino (para solicitações).

Quando devo ativar o streaming?

Se o proxy da API lida com solicitações e/ou respostas muito grandes, ative o streaming. Para limites de tamanho, consulte O que mais devo saber sobre streaming abaixo.

O que mais eu preciso saber sobre o streaming?

O tamanho do payload da mensagem é restrito a 10 MB no Edge Cloud e na nuvem privada, mesmo com o streaming ativado. Em solicitações e respostas sem streaming, exceder esse tamanho resulta em um erro protocol.http.TooBigBody.

No Edge para implantações de nuvem privada, é possível modificar o limite de tamanho de solicitação/resposta sem streaming. Não deixe de testar antes de implantar a mudança na produção.

  • Para as versões do Edge para nuvem privada anteriores à 4.16.01:

    Em todos os processadores de mensagens, edite o arquivo http.properties para aumentar o limite no parâmetro HTTPResponse.body.buffer.limit e reinicie o processador de mensagens.
  • Para o Edge para nuvem privada versão 4.16.01 e mais recentes:
    1. Edite o arquivo /<inst_root>/apigee/customer/application/message-processor.properties. Se esse arquivo não existir, crie-o.

    2. Defina a propriedade conf_http_HTTPResponse.body.buffer.limit em message-processor.properties. Por exemplo:
      conf_http_HTTPResponse.body.buffer.limit=5m

    3. Reinicie o processador de mensagens:
      > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-message-processor restart

    4. Repita o procedimento para todos os processadores de mensagens.

Como ativar o streaming de solicitações e respostas

Para ativar o streaming de solicitações, é preciso adicionar a propriedade request.streaming.enabled às definições ProxyEndpoint e TargetEndpoint no pacote de proxy e defini-la como true. Da mesma forma, defina a propriedade response.streaming.enabled para ativar o streaming de resposta.

Esses arquivos de configuração podem ser localizados na interface de gerenciamento, na visualização "Desenvolver" do proxy. Se você estiver desenvolvendo localmente, esses arquivos de definição estarão em apiproxy/proxies e apiproxy/targets.

Neste exemplo, mostramos como ativar o streaming de solicitação e resposta na definição de TargetEndpoint.

<TargetEndpoint name="default">
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
    <Properties>
      <Property name="response.streaming.enabled">true</Property>
      <Property name="request.streaming.enabled">true</Property>
      <Property name="supports.http10">true</Property>
      <Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property>
      <Property name="retain.queryparams">apikey</Property>
    </Properties>
  </HTTPTargetConnection>
</TargetEndpoint>

Este exemplo mostra como ativar o recurso de resposta e solicitação de streaming na definição do ProxyEndpoint:

<ProxyEndpoint name="default">
  <HTTPProxyConnection>
    <BasePath>/v1/weather</BasePath>
    <Properties>
      <Property name="allow.http10">true</Property>
      <Property name="response.streaming.enabled">true</Property>
      <Property name="request.streaming.enabled">true</Property>
    </Properties>
  </HTTPProxyConnection>
</ProxyEndpoint>

Para mais informações sobre como configurar definições de endpoint, consulte Referência de propriedades de endpoint.

Amostras de código relacionadas

As amostras de proxy da API no GitHub são fáceis de fazer o download e usar. Consulte Como usar os proxies de amostra da API para saber mais sobre como fazer o download e usar as amostras.

Os proxies de exemplo que apresentam streaming incluem:

  • streaming: demonstra um proxy de API configurado para streaming HTTP.
  • Edge callout: Signed URL Generator: mostra a prática recomendada de gerar um URL assinado para acessar arquivos grandes em vez de tentar transmiti-los em uma solicitação/resposta.