Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
Qué aprenderás en este tema
Después de leer este tema, sabrás lo siguiente:
- Qué es el streaming de solicitudes y respuestas en Apigee
- Cuándo usar el streaming de solicitudes y respuestas
- Cómo habilitar el streaming de solicitudes y respuestas
¿Qué es el streaming de solicitudes y respuestas?
De forma predeterminada, el streaming HTTP está inhabilitado y las cargas útiles de las solicitudes y respuestas HTTP se escriben en un búfer en la memoria antes de que las procese la canalización del proxy de API. Puedes cambiar este comportamiento habilitando la transmisión. Si el streaming está habilitado, las cargas útiles de las solicitudes y las respuestas se transmiten sin modificar a la aplicación cliente (en el caso de las respuestas) y al endpoint de destino (en el caso de las solicitudes).
¿Cuándo debo habilitar la emisión?
Si tu proxy de API gestiona solicitudes o respuestas muy grandes (para ver los límites de tamaño, consulta ¿Qué más debo saber sobre el streaming?), puede que te interese habilitar el streaming.
¿Qué más debo saber sobre el streaming?
El tamaño de la carga útil del mensaje está limitado a 30 MB.
En las solicitudes y respuestas no transmitidas, si se supera ese tamaño, se produce un error protocol.http.TooBigBody
.
Datos codificados
Cuando el streaming está habilitado, Apigee no codifica ni decodifica las cargas útiles de las solicitudes o respuestas antes de enviarlas al cliente que se conecta a Apigee o a un servidor de destino backend. Para obtener más información, consulta las filas de request.streaming.enabled
y response.streaming.enabled
en la tabla
Especificación de la propiedad de transporte TargetEndpoint.
Cómo habilitar el streaming de solicitudes y respuestas
Para habilitar el streaming de solicitudes, debe añadir la propiedad request.streaming.enabled
a las definiciones de ProxyEndpoint y TargetEndpoint del paquete de proxy y asignarle el valor
true
. Del mismo modo, asigna el valor response.streaming.enabled
a la propiedad
para habilitar la transmisión de respuestas.
Puedes encontrar estos archivos de configuración en la interfaz de usuario de Apigee, en la vista Desarrollo de tu proxy. Si desarrollas de forma local, estos archivos de definición se encuentran en apiproxy/proxies
y apiproxy/targets
.
En este ejemplo se muestra cómo habilitar el streaming de solicitudes y respuestas en la definición 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>
En este ejemplo se muestra cómo habilitar el streaming de respuestas y solicitudes en la definición 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 obtener más información sobre cómo configurar las definiciones de endpoints, consulta la referencia de propiedades de endpoints.
Ejemplos de código relacionado
Los ejemplos de proxy de API de GitHub son fáciles de descargar y usar.
Estos son algunos ejemplos de proxies que ofrecen streaming:
- streaming: muestra un proxy de API configurado para el streaming HTTP.
- Nota: Generador de URLs firmadas: ilustra la práctica recomendada de generar una URL firmada para acceder a archivos grandes en lugar de intentar transmitirlos en una solicitud o respuesta.