Use encabezados finales HTTP opcionales para habilitar las respuestas de Gremlin compuestas por varias partes - Amazon Neptune

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Use encabezados finales HTTP opcionales para habilitar las respuestas de Gremlin compuestas por varias partes

De forma predeterminada, la respuesta HTTP a las consultas de Gremlin se devuelve en un único conjunto de resultados JSON. En el caso de un conjunto de resultados muy grande, esto puede provocar una excepción OutOfMemoryError en la instancia de base de datos.

Sin embargo, puede habilitar las respuestas fragmentadas (respuestas que se devuelven en varias partes separadas). Para ello, incluya un encabezado final (te: trailers) con codificación de transferencia (TE) en su solicitud. Consulte la página de MDN sobre los encabezados de las solicitudes TE para obtener más información sobre los encabezados TE.

Cuando se devuelve una respuesta en varias partes, puede resultar difícil diagnosticar un problema que se produce después de recibir la primera parte, ya que la primera parte llega con un código de estado HTTP de 200 (OK). Un error posterior suele provocar que el cuerpo del mensaje contenga una respuesta dañada, al final de la cual Neptune añade un mensaje de error.

Para facilitar la detección y el diagnóstico de este tipo de errores, Neptune también incluye dos nuevos campos de encabezado dentro de los encabezados finales de cada fragmento de respuesta:

  • X-Neptune-Status: contiene el código de respuesta seguido de un nombre abreviado. Por ejemplo, en caso de que se realizara correctamente, el encabezado final sería: X-Neptune-Status: 200 OK. En caso de fallo, el código de respuesta sería uno de los códigos de error del motor de Neptune, como X-Neptune-Status: 500 TimeLimitExceededException.

  • X-Neptune-Detail: está vacío si las solicitudes se han realizado correctamente. En caso de errores, contiene el mensaje de error JSON. Como solo se permiten caracteres ASCII en los valores de los encabezados HTTP, la cadena JSON está codificada en URL.

nota

Neptune no admite actualmente la compresión gzip de respuestas fragmentadas. Si el cliente solicita codificación y compresión fragmentadas al mismo tiempo, Neptune omite la compresión.