Verwenden optionaler nachgestellter HTTP-Header zum Aktivieren mehrteiliger Gremlin-Antworten - Amazon Neptune

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden optionaler nachgestellter HTTP-Header zum Aktivieren mehrteiliger Gremlin-Antworten

Standardmäßig wird die HTTP-Antwort auf Gremlin-Abfragen als einzelner JSON-Ergebnissatz zurückgegeben. Bei einem sehr großen Ergebnissatz kann dies zu einer OutOfMemoryError-Ausnahme für die DB-Instance führen.

Sie können jedoch die Aufteilung von Antworten aktivieren (die Rückgabe von Antworten in mehreren getrennten Teilen). Hierzu fügen Sie Ihrer Anforderung einen nachgestellten Transfer-Encoding (TE)-Header (te: trailers) hinzu. Weitere Informationen zu TE-Headern finden Sie auf der MDN-Seite zu TE-Anforderungs-Headern.

Bei Rückgabe einer Antwort in mehreren Teilen kann die Diagnose eines Problems schwierig sein, das nach dem Erhalt des ersten Teils auftritt, da der erste Teil mit dem HTTP-Statuscode 200 (OK) eingeht. Ein nachfolgender Fehler führt in der Regel zu einer Meldung mit einer ungültigen Antwort, an die Neptune eine Fehlermeldung anfügt.

Um die Erkennung und Diagnose dieser Art von Fehler zu vereinfachen, fügt Neptune in die nachgestellten Header der einzelnen Antwortteile zwei neue Header-Felder ein:

  • X-Neptune-Status  –   enthält den Antwortcode gefolgt von einem Kurznamen. Im Erfolgsfall wäre der nachgestellte Header beispielsweise: X-Neptune-Status: 200 OK. Im Fehlerfall wäre der Antwortcode ein Neptune-Engine-Fehlercode wie X-Neptune-Status: 500 TimeLimitExceededException.

  • X-Neptune-Detail  –   ist bei erfolgreichen Anforderungen leer. Im Fehlerfall ist die JSON-Fehlermeldung enthalten. Da in HTTP-Header-Werten nur ASCII-Zeichen zulässig sind, ist die JSON-Zeichenfolge URL-codiert.

Anmerkung

Neptune unterstützt zurzeit die gzip-Komprimierung aufgeteilter Antworten nicht. Wenn der Client gleichzeitig eine Aufteilung und eine Komprimierung anfordert, überspringt Neptune die Komprimierung.