

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 呼叫 Neptune 串流 REST API
<a name="streams-using-api-call"></a>

您可以使用 REST API 存取 Neptune 串流，將 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` 操作。

Neptune 支援回應的 `gzip` 壓縮，前提是 HTTP 請求包含 `Accept-Encoding` 標頭，其中將 `gzip` 指定為接受的壓縮格式 (也就是 `"Accept-Encoding: gzip"`)。

**Parameters**
+ `limit` – 長整數 (選用)。範圍：1–100,000。預設值：10

  指定要傳回的記錄數上限。回應也有無法修改的 10 MB 大小限制，而且會優先於 `limit` 參數中指定的記錄數量。如果達到 10 MB 限制，回應會包含違反閾值的記錄。
+ `iteratorType` – 字串 (選用)。

  此參數可採用下列其中一個值：
  + `AT_SEQUENCE_NUMBER` (預設值) – 指出讀取應該從 `commitNum` 和 `opNum` 參數共同指定的事件序號開始。
  + `AFTER_SEQUENCE_NUMBER` – 指出讀取應該在 `commitNum` 和 `opNum` 參數共同指定的事件序號之後立即開始。
  + `TRIM_HORIZON` – 指出讀取應該從系統中的最後一個未修整記錄開始，這是變更日誌串流中最舊的未過期 (尚未刪除) 記錄。當您沒有特定的開始事件序號時，此模式在應用程式啟動期間很有用。
  + `LATEST` – 指出讀取應該從系統中的最新記錄開始，這是變更日誌串流中最新的未過期 (尚未刪除) 記錄。當需要從串流的目前頂端讀取記錄，以免處理較舊的記錄 (例如在災難復原或零停機時間升級期間) 時，這會很有用。請注意，在此模式下，最多只會傳回一筆記錄。
+ `commitNum` – 長整數，當 iteratorType 為 `AT_SEQUENCE_NUMBER` 或 `AFTER_SEQUENCE_NUMBER` 時為必要。

  要從 change-log 串流讀取之開始記錄的遞交編號。

  當 `iteratorType` 為 `TRIM_HORIZON` 或 `LATEST` 時會忽略此參數。
+ `opNum` – 長整數，選用 (預設為 `1`)。

  所指定遞交內的操作序號，即在變更日誌串流資料中開始讀取之處。

變更 SPARQL 圖形資料的操作通常只會為每個操作產生單一變更記錄。不過，變更 Gremlin 圖形資料的操作可能會為每個操作產生多個變更記錄，如以下範例所示：
+ `INSERT` – Gremlin 頂點可以有多個標籤，而且 Gremlin 元素可以有多個屬性。插入元素時，會為每個標籤和屬性產生個別的變更記錄。
+ `UPDATE` – 變更 Gremlin 元素屬性時，會產生兩個變更記錄：第一個用於移除先前的值，第二個用於插入新值。
+ `DELETE` – 系統會針對刪除的每個元素屬性產生個別的變更記錄。例如，刪除具有屬性的 Gremlin 邊緣時，每個屬性都會產生一個變更記錄，之後會產生一個用於刪除邊緣標籤的變更記錄。

  刪除 Gremlin 頂點時，會先刪除所有傳入和傳出邊緣屬性，接著依序刪除邊緣標籤、頂點屬性，最後再刪除頂點標籤。其中每個刪除都會產生一筆變更記錄。