Pedidos e respostas de streaming

Esta página aplica-se ao Apigee e ao Apigee Hybrid.

Veja a documentação do Apigee Edge.

O que vai aprender neste tópico

Depois de ler este tópico, vai saber o seguinte:

  • O que é o streaming de pedidos e respostas no Apigee
  • Quando usar o streaming de pedidos e respostas
  • Como ativar o streaming de pedidos e respostas

O que é o streaming de pedidos e respostas?

Por predefinição, o streaming HTTP está desativado e as cargas de resposta e de pedido HTTP são escritas num buffer na memória antes de serem processadas pelo pipeline do proxy de API. Pode alterar este comportamento ativando o streaming. Com o streaming ativado, os payloads de pedidos e respostas são transmitidos sem modificação para a app cliente (para respostas) e o ponto final de destino (para pedidos).

Quando devo ativar o streaming?

Se o seu proxy de API processar pedidos e/ou respostas muito grandes (para ver os limites de tamanho, consulte Que mais devo saber sobre o streaming), pode querer ativar o streaming.

Que mais devo saber sobre o streaming?

O tamanho da carga útil da mensagem está restrito a 30 MB. Em pedidos e respostas não transmitidos, exceder esse tamanho resulta num erro protocol.http.TooBigBody.

Dados codificados

Quando o streaming está ativado, o Apigee não codifica nem descodifica os payloads de pedidos ou respostas antes de os enviar para o cliente que se liga ao Apigee ou a um servidor de destino de back-end. Consulte as linhas de request.streaming.enabled e response.streaming.enabled na tabela TargetEndpoint Transport Property Specification para mais informações.

Como ativar o streaming de pedidos e respostas

Para ativar o streaming de pedidos, tem de adicionar a propriedade request.streaming.enabled às definições de 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 respostas.

Pode localizar estes ficheiros de configuração na IU do Apigee na vista Develop para o seu proxy. Se estiver a desenvolver localmente, estes ficheiros de definição encontram-se em apiproxy/proxies e apiproxy/targets.

Este exemplo mostra como ativar o streaming de pedidos e respostas na definição 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 streaming de respostas e pedidos na definição de 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 a configuração de definições de pontos finais, consulte a referência de propriedades de pontos finais.

Exemplos de código relacionados

Os exemplos de proxy de API no GitHub são fáceis de transferir e usar.

Alguns exemplos de proxies que incluem streaming:

  • 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 aceder a ficheiros grandes em vez de tentar transmiti-los numa solicitação/resposta.