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.