Use cabeçalhos HTTP finais opcionais para habilitar respostas do Gremlin em várias partes - Amazon Neptune

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Use cabeçalhos HTTP finais opcionais para habilitar respostas do Gremlin em várias partes

Por padrão, a HTTP resposta às consultas do Gremlin é retornada em um único JSON conjunto de resultados. No caso de um conjunto de resultados muito grande, isso pode causar uma exceção OutOfMemoryError na instância de banco de dados.

No entanto, é possível habilitar respostas fragmentadas (respostas geradas em várias partes separadas). Isso é feito incluindo um cabeçalho de trailers (te: trailers) com codificação de transferência (TE) na solicitação. Consulte a MDN página sobre cabeçalhos de solicitação TE para obter mais informações sobre cabeçalhos TE.

Quando uma resposta é retornada em várias partes, pode ser difícil diagnosticar um problema que ocorre após o recebimento da primeira parte, pois a primeira parte chega com um código de HTTP status de 200 (OK). Uma falha subsequente geralmente gera um corpo de mensagem que contém uma resposta corrompida, ao final da qual o Neptune acrescenta uma mensagem de erro.

Para facilitar a detecção e o diagnóstico desse tipo de falha, o Neptune também inclui dois novos campos de cabeçalho nos cabeçalhos finais de cada bloco de resposta:

  • X-Neptune-Status: contém o código de resposta seguido por um nome curto. Por exemplo, em caso de êxito, o cabeçalho final seria: X-Neptune-Status: 200 OK. Em caso de falha, o código de resposta seria um dos códigos de erro do mecanismo do Neptune, como X-Neptune-Status: 500 TimeLimitExceededException.

  • X-Neptune-Detail: fica em branco para solicitações bem-sucedidas. No caso de erros, ele contém a mensagem JSON de erro. Como somente ASCII caracteres são permitidos nos valores do HTTP cabeçalho, a JSON string é URL codificada.

nota

No momento, o Neptune não é compatível com a compactação gzip de respostas fragmentadas. Se o cliente solicitar codificação fragmentada e compactação ao mesmo tempo, o Neptune vai ignorar a compactação.