

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 调用 Neptune Streams REST API
<a name="streams-using-api-call"></a>

您可以使用 REST API 访问 Neptune Streams，该 API 将向以下其中一个本地端点发送 HTTP GET 请求：
+ 对于 SPARQL 图形数据库：`https://Neptune-DNS:8182/sparql/stream`。
+ 对于 Gremlin 或 openCypher 图形数据库：`https://Neptune-DNS:8182/propertygraph/stream` 或 `https://Neptune-DNS:8182/pg/stream`。

**注意**  
Gremlin 流端点 (`https://Neptune-DNS:8182/gremlin/stream`) 及其关联的输出格式 () 已被弃用。`GREMLIN_JSON`为了向后兼容，它仍然受支持，但可能会在将来版本中移除。

仅允许进行 HTTP `GET` 操作。

如果 HTTP 请求包含 `Accept-Encoding` 标头并将 `gzip` 指定为可接受的压缩格式（即 `"Accept-Encoding: gzip"`），则 Neptune 支持对响应进行 `gzip` 压缩。

**参数**
+ `limit` – long，可选。范围：1–100000。默认值：10。

  指定要返回的最大记录数。响应还受 10 MB 大小的限制，该大小限制不能修改，并且优先级高于 `limit` 参数中指定的记录数。如果达到了 10 MB 限制，响应中将包含一条超出阈值记录。
+ `iteratorType` – 字符串，可选。

  该参数可接受以下值：
  + `AT_SEQUENCE_NUMBER`（默认值）– 指示读取应该从由 `commitNum` 和 `opNum` 参数共同指定的事件序列号开始。
  + `AFTER_SEQUENCE_NUMBER` – 指示读取应该从紧接在由 `commitNum` 和 `opNum` 参数共同指定的事件序列号之后的事件序列号开始。
  + `TRIM_HORIZON` – 指示读取应该从系统中最后一条未剪裁的记录开始，该记录是更改日志流中时间最久的未过期（尚未删除）记录。当您没有特定的开始事件序列号时，该模式在应用程序启动期间非常有用。
  + `LATEST` – 指示读取应该从系统中最近的记录开始，该记录是更改日志流中最新的未过期（尚未删除）记录。当需要从当前的流顶部读取记录以免处理较旧的记录时，例如在灾难恢复或零停机时间升级期间，这很有用。请注意，在此模式下，最多只返回一条记录。
+ `commitNum` – long，当 iteratorType 为 `AT_SEQUENCE_NUMBER` 或 `AFTER_SEQUENCE_NUMBER` 时是必需的。

  从更改日志流中读取的起始记录的提交编号。

  如果 `iteratorType` 为 `TRIM_HORIZON` 或 `LATEST`，则忽略此参数。
+ `opNum` – long，可选（默认值为 `1`）。

  从更改日志流数据中开始读取的指定提交中的操作序列号。

对于更改 SPARQL 图形数据的操作，通常是每个操作仅生成一条更改记录。但是，更改 Gremlin 图形数据的操作可以是每个操作生成多条更改记录，如以下示例所示：
+ `INSERT` – Gremlin 顶点可以有多个标签，而 Gremlin 元素可以有多个属性。插入元素时，将为每个标签和属性生成单独的更改记录。
+ `UPDATE` – 更改 Gremlin 元素属性时，将生成两条更改记录：第一条为删除先前值的记录，第二条为插入新值的记录。
+ `DELETE` – 为每个删除的元素属性生成一条单独的更改记录。例如，当删除具有属性的 Gremlin 边缘时，将为每个属性生成一条更改记录，然后，生成一条删除边缘标签的更改记录。

  删除 Gremlin 顶点时，将首先删除所有入边和出边属性，然后删除边缘标签、顶点属性，最后是顶点标签。上述每个删除操作都会生成一条更改记录。