Antipatrón: acceder a la carga útil de la solicitud o la respuesta cuando el streaming está habilitado

Estás consultando la documentación de Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.

En Apigee, el comportamiento predeterminado es que las cargas útiles de las solicitudes y respuestas HTTP se almacenan en un búfer en memoria antes de que las procesen las políticas del proxy de API.

Si el streaming está habilitado, las cargas útiles de las solicitudes y las respuestas se transmiten sin modificaciones a la aplicación cliente (en el caso de las respuestas) y al endpoint de destino (en el caso de las solicitudes). El streaming es útil, sobre todo si una aplicación acepta o devuelve cargas útiles grandes, o si hay una aplicación que devuelve datos en fragmentos a lo largo del tiempo.

Antipatrón

Si se accede a la carga útil de la solicitud o la respuesta con el streaming habilitado, Apigee volverá al modo de almacenamiento en búfer predeterminado.

Solicitud de la política de cuota del procesador de mensajes para extraer variables del procesador de mensajes al destino.
            Target to Message Processor JSONToXML to Response.
Imagen 1: Acceso a la carga útil de solicitud o respuesta con el streaming habilitado

En la ilustración anterior se muestra que estamos intentando extraer variables de la carga útil de la solicitud y convertir la carga útil de la respuesta JSON a XML mediante la política JSONToXML. Esto inhabilitará el streaming en Apigee.

Impacto

  • El streaming se inhabilitará, lo que puede provocar un aumento de la latencia en el procesamiento de los datos.
  • Se puede observar un aumento en el uso de la memoria del montículo o errores OutOfMemory en los procesadores de mensajes debido al uso de búferes en memoria, especialmente si tenemos cargas útiles de solicitud o respuesta grandes.

Práctica recomendada

  • No accedas a la carga útil de la solicitud o la respuesta cuando el streaming esté habilitado.

Más información