Usa encabezados HTTP finales 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.

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

De forma predeterminada, la HTTP respuesta 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 MDN página sobre los encabezados de las solicitudes de TE para obtener más información sobre los encabezados de las solicitudes de 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 HTTP estado 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 el caso de errores, contiene el mensaje JSON de error. Como solo se permiten ASCII caracteres en los valores de HTTP encabezado, la JSON cadena está URL codificada.

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.