Solicitações e respostas de streaming

Esta página se aplica à Apigee e à Apigee híbrida.

Confira a documentação da Apigee Edge.

O que você aprenderá neste tópico

Depois de ler este tópico, você terá conhecimento sobre os seguintes tópicos:

  • O que é o streaming de solicitações e respostas na Apigee.
  • 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 processar 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. Em solicitações e respostas sem streaming, exceder esse tamanho resulta em um erro protocol.http.TooBigBody.

Dados codificados

Quando o streaming está ativado, a Apigee não codifica nem decodifica payloads de solicitações ou respostas antes de enviá-las ao cliente se conectando à Apigee ou a um servidor de destino de back-end. Para mais informações, consulte as linhas de request.streaming.enabled e response.streaming.enabled na tabela Especificação da propriedade de transporte TargetEndpoint.

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.

É possível localizar esses arquivos de configuração na IU da Apigee, 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.

Os proxies de exemplo que apresentam streaming incluem:

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