Antipatrón: Accede a la carga útil de la solicitud o respuesta cuando la transmisión está habilitada

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

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

Si la transmisión está habilitada, las cargas útiles de solicitud y respuesta se transmiten sin modificaciones a la app cliente (para las respuestas) y el extremo de destino (para las solicitudes). La transmisión es útil, en especial si una aplicación acepta o muestra cargas útiles grandes, o si existe una aplicación que muestra datos en fragmentos a lo largo del tiempo.

Antipatrón

Acceder a la carga útil de solicitud/respuesta con la transmisión habilitada hace que Edge vuelva al modo de almacenamiento en búfer predeterminado.

Figura 1: Acceso a la carga útil de solicitud o respuesta con la transmisión habilitada

En la ilustración anterior, se muestra que intentamos extraer variables de la carga útil de la solicitud y convertir la carga útil de la respuesta de JSON a XML mediante la política JSONToXML. Esto inhabilitará la transmisión en Edge.

Impacto

  • La transmisión se inhabilitará, lo que puede generar mayores latencias en el procesamiento de los datos.
  • Se puede observar el uso de la memoria del montón o errores de OutOfMemory en los procesadores de mensajes debido al uso de búferes en la memoria, especialmente si tienes cargas útiles grandes de solicitud o respuesta.

Práctica recomendada

  • No accedas a la carga útil de la solicitud o respuesta cuando la transmisión está habilitada.

Lecturas adicionales