

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

# SPARQL 查詢取消
<a name="sparql-api-status-cancel"></a>

若要取得 SPARQL 查詢的狀態，請使用 HTTP `GET` 或 `POST` 向 `https://your-neptune-endpoint:port/sparql/status` 端點提出請求。

## SPARQL 查詢取消請求參數
<a name="sparql-api-status-cancel-request"></a>

**cancelQuery**  
(必要) 告知狀態命令取消查詢。此參數不採用數值。

**queryId**  
(必要) 要取消之執行中 SPARQL 查詢的 ID。

**silent**  
(選用) 如果 `silent=true`，則執行中查詢會遭到取消，且 HTTP 回應代碼為 200。如果 `silent` 不存在或 `silent=false`，則會取消查詢並顯示 HTTP 500 狀態碼。

## SPARQL 查詢取消範例
<a name="sparql-api-status-cancel-example"></a>

**範例 1：描配 `silent=false` 進行取消**  
以下是使用狀態命令的範例，其使用 `curl` 搭配設定為 `false` 的 `silent` 參數來取消查詢：

```
curl https://your-neptune-endpoint:port/sparql/status \
  -d "cancelQuery" \
  -d "queryId=4d5c4fae-aa30-41cf-9e1f-91e6b7dd6f47" \
  -d "silent=false"
```

除非查詢已啟動串流結果，否則取消的查詢隨後將傳回 HTTP 500 代碼，回應如下：

```
{
  "code": "CancelledByUserException",
  "requestId": "4d5c4fae-aa30-41cf-9e1f-91e6b7dd6f47",
  "detailedMessage": "Operation terminated (cancelled by user)"
}
```

如果查詢已傳回 HTTP 200 代碼 (OK)，且在取消之前已啟動串流結果，則逾時例外狀況資訊會傳送至一般輸出串流。

**範例 2：搭配 `silent=true` 進行取消**  
以下是與上述相同狀態命令的範例，但 `silent` 參數現在設定為 `true`：

```
curl https://your-neptune-endpoint:port/sparql/status \
  -d "cancelQuery" \
  -d "queryId=4d5c4fae-aa30-41cf-9e1f-91e6b7dd6f47" \
  -d "silent=true"
```

此命令會傳回與 `silent=false` 時相同的回應，但取消的查詢現在會傳回 HTTP 200 代碼，其回應如下：

```
{
  "head" : {
    "vars" : [ "s", "p", "o" ]
  },
  "results" : {
    "bindings" : [ ]
  }
}
```