

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.

# Herstellen einer Verbindung mit einer Neptune-DB-Instance über den HTTPS-REST-Endpunkt
<a name="access-graph-gremlin-rest"></a>

Amazon Neptune stellt einen HTTPS-Endpunkt für Gremlin-Abfragen bereit. Die REST-Schnittstelle ist mit jeder Gremlin-Version kompatibel, die Ihr DB-Cluster verwendet. (Auf der Seite [Engine-Version](engine-releases.md) der von Ihnen ausgeführten Engine-Version finden Sie Informationen zur unterstützten Gremlin-Version.)

**Anmerkung**  
Wie in [Verschlüsseln von Verbindungen zu Ihrer Amazon Neptune Neptune-Datenbank mit SSL/HTTPS](security-ssl.md) beschrieben, erforrdert Neptune jetzt, dass Sie die Verbindung über HTTPS und nicht über HTTP herstellen. Darüber hinaus unterstützt Neptune derzeit kein HTTP/2 für REST-API-Anfragen. Clients müssen HTTP/1.1 verwenden, wenn sie eine Verbindung zu Endpunkten herstellen.

Die folgenden Anweisungen führen Sie durch das Herstellen einer Verbindung zum Gremlin-Endpunkt mittels des `curl`-Befehls und HTTPS. Sie müssen diese Anweisungen für eine Amazon-EC2-Instance befolgen, die sich in derselben Virtual Private Cloud (VPC) wie Ihre Neptune-DB-Instance befindet.

Der HTTPS-Endpunkt für Gremlin-Abfragen an eine Neptune-DB-Instance ist `https://your-neptune-endpoint:port/gremlin`.

**Anmerkung**  
Informationen zum Ermitteln des Hostnamens Ihrer Neptune-DB-Instance finden Sie in [Verbinden mit Amazo-Neptune-Endpunkten](feature-overview-endpoints.md).

## Herstellen einer Verbindung mit Neptune über den HTTP-REST-Endpunkt
<a name="access-graph-gremlin-rest-connect"></a>

Im folgenden Beispiel wird **curl** zum Übermitteln einer Gremlin-Abfrage über HTTP **POST** verwendet. Die Abfrage wird im JSON-Format im Text des Posts als `gremlin`-Eigenschaft übermittelt.

```
curl -X POST -d '{"gremlin":"g.V().limit(1)"}' https://your-neptune-endpoint:port/gremlin
```

Dieses Beispiel gibt den ersten Eckpunkt im Diagramm über die `g.V().limit(1)`-Traversierung zurück. Um etwas anderes abzufragen, ersetzen Sie diese durch eine andere Gremlin-Traversierung.

**Wichtig**  
Der REST-Endpunkt gibt standardmäßig alle Ergebnisse in einem einzelnen JSON-Ergebnissatz zurück. Wenn dieser Ergebnissatz zu groß ist, kann eine `OutOfMemoryError`-Ausnahme für die Neptune-DB-Instance auftreten.  
Sie können dies vermeiden, indem Sie die Aufteilung von Antworten aktivieren (Rückgabe der Ergebnisse in mehreren getrennten Antworten). Siehe [Verwenden optionaler nachgestellter HTTP-Header zum Aktivieren mehrteiliger Gremlin-Antworten](access-graph-gremlin-rest-trailing-headers.md).

Auch wenn zum Senden von Gremlin-Abfragen HTTP-**POST**-Anforderungen empfohlen werden, können Sie auch HTTP-**GET**-Anforderungen verwenden:

```
curl -G "https://your-neptune-endpoint:port?gremlin=g.V().count()"
```

**Anmerkung**  
Neptune unterstützt die Eigenschaft `bindings` nicht.

# Verwenden optionaler nachgestellter HTTP-Header zum Aktivieren mehrteiliger Gremlin-Antworten
<a name="access-graph-gremlin-rest-trailing-headers"></a>

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](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/TE).

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](errors-engine-codes.md) 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.