19 グラフ・サーバーのRESTエンドポイント
この章では、グラフ・サーバーのREST APIエンドポイントについて説明します。
グラフ・サーバーREST APIは2つの異なるバージョンをサポートしています。バージョン2のAPIを使用することをお薦めします。
- グラフ・サーバーのREST APIバージョン2
グラフ・サーバーのREST APIバージョン2 (v2)について学習します。 - グラフ・サーバーのREST APIバージョン1
グラフ・サーバーのREST APIバージョン1 (v1)について学習します。
親トピック: グラフ・サーバー(PGX)の使用
19.1 グラフ・サーバーのREST APIバージョン2
グラフ・サーバーのREST APIバージョン2 (v2)について学習します。
このAPIバージョンは、RESTエンドポイントに対するトークンベース認証をサポートしています。したがって、まず、後続のREST APIリクエストで使用できるアクセス・トークンを取得する必要があります。
親トピック: グラフ・サーバーのRESTエンドポイント
19.1.1 認証トークンの取得
https://localhost:7007/auth/token
REST APIリクエストの認証に使用できる認証トークンを取得します。
リクエスト
リクエスト・ヘッダー
- Accept:
application/json; charset=UTF-8
- Content-Type:
application/json
表19-1 リクエスト本文のパラメータ
パラメータ | 型 | 説明 | 必須 |
---|---|---|---|
username |
string | ユーザー名 | はい |
password |
string | ユーザーのパスワード | はい |
createSession |
boolean | セッションを作成する必要があるかどうかを確認する | オプション。グラフ・サーバー(PGX)に対して問合せを実行する場合は、true に設定します。
|
サンプル・リクエスト本文
{
"username": "graphuser",
"password": "<password_for_graphuser>",
"createSession": true
}
レスポンス
- 201 Created
- Content-Type:
application/json
サンプル・レスポンス本文
{
"access_token": "<token>"
"token_type": "bearer",
"expires_in": 3600
}
cURLの例
curl --location 'https://localhost:7007/auth/token' \
--header 'Content-Type: application/json' \
--data '{
"username": "graphuser",
"password": "<password_for_graphuser>",
"createSession": true
}'
親トピック: グラフ・サーバーのREST APIバージョン2
19.1.2 認証トークンのリフレッシュ
https://localhost:7007/auth/token
有効なアクセス・トークンをリフレッシュします。
リクエスト
リクエスト・ヘッダー
- Accept:
application/json; charset=UTF-8
- Content-Type:
application/json
表19-2 リクエスト本文のパラメータ
パラメータ | 型 | 説明 | 必須 |
---|---|---|---|
token |
string | アクセス・トークン値 | はい |
createSession |
boolean | セッションを作成する必要があるかどうかを決定するフラグ | オプション。グラフ・サーバー(PGX)に対して問合せを実行する場合は、true に設定します。
|
サンプル・リクエスト本文
{
"token": "<token>",
"createSession": true
}
レスポンス
- 201 Created
- Content-Type:
application/json
サンプル・レスポンス本文
{
"access_token": "<token>"
"token_type": "bearer",
"expires_in": 3600
}
cURLの例
curl --location --request PUT 'https://localhost:7007/auth/token' \
--header 'Content-Type: application/json' \
--data '{
"token": "<token_value>",
"createSession": true
}'
親トピック: グラフ・サーバーのREST APIバージョン2
19.1.3 グラフの取得
GET https://localhost:7007/v2/graphs
指定されたドライバのグラフのリストを取得します。
バージョン: v2
リクエスト
リクエスト・ヘッダー
- Accept:
application/json; charset=UTF-8
- Header:
Authorization: Bearer <token>
- Content-Type:
application/json
リクエスト問合せのパラメータ
- driver (必須): PGQLドライバ値を指定します。これは必須パラメータです。サポートされる値は次のとおりです。
GRAPH_SERVER_PGX
: グラフ・サーバー(PGX)にロードされるグラフPGQL_IN_DATABASE
: データベース内のPGQLプロパティ・グラフSQL_IN_DATABASE
: データベース内のSQLプロパティ・グラフ
レスポンス
- 200 OK
- Content-Type:
application/json
サンプル・レスポンス本文
[
{
"schema": <value>,
"graphName": <value>
}
]
schema
パラメータは、グラフ・サーバー(PGX)で作成されたグラフの場合、NULL
になることに注意してください。
cURLの例
curl --location --request GET 'https://localhost:7007/v2/graphs?driver=<driver-value>' \
--header 'Authorization: Bearer <token>'
親トピック: グラフ・サーバーのREST APIバージョン2
19.1.4 PGQL問合せの実行
POST https://localhost:7007/v2/runQuery
指定したドライバに対して1つ以上の文を実行します。
バージョン: v2
リクエスト
リクエスト・ヘッダー
- Accept:
application/json; charset=UTF-8
- Header:
Authorization: Bearer <token>
- Content-Type:
application/json
表19-3 リクエスト本文のパラメータ
パラメータ | 型 | 説明 | 必須 |
---|---|---|---|
statements |
string [ ] | 1つ以上の文 | はい |
driver |
string | PGQLドライバを指定します。サポートされる値は次のとおりです。
|
はい |
formatter |
string | サポートされる値は次のとおりです。
|
はい |
parameters |
object
|
パラメータは次のとおりです。
|
パラメータはすべてオプションです。
|
visualize |
boolean | ビジュアライゼーションを設定するフラグ | オプション。デフォルト値はtrue
|
サンプル・リクエスト本文
{
"statements": [
"DROP PROPERTY GRAPH TEST_GRAPH",
"CREATE PROPERTY GRAPH TEST_GRAPH VERTEX TABLES( Male KEY (id) LABEL Male PROPERTIES ARE ALL COLUMNS EXCEPT (gender), Female KEY (id) LABEL Female PROPERTIES ARE ALL COLUMNS EXCEPT (gender) ) EDGE TABLES( knowsmm KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Male LABEL knows PROPERTIES (mval, firstMetAt, since), knowsmf KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Female LABEL knows PROPERTIES (mval, firstMetAt, since), knowsfm KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Male LABEL knows PROPERTIES (mval, firstMetAt, since), knowsff KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Female LABEL knows PROPERTIES (mval, firstMetAt, since), friendOfmm KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Male LABEL friendOf PROPERTIES (strength), friendOfmf KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Female LABEL friendOf PROPERTIES (strength), friendOffm KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Male LABEL friendOf PROPERTIES (strength), friendOfff KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Female LABEL friendOf PROPERTIES (strength) ) OPTIONS ( pg_view )",
"SELECT v FROM MATCH (v) ON TEST_GRAPH LIMIT 1"
],
"driver": "PGQL_IN_DATABASE",
"formatter": "GVT",
"parameters": {
"dynamicSampling": 2,
"parallel": 8,
"start": 0,
"size": 100
},
"visualize": true
レスポンス
- 200 OK
- Content-Type:
application/json
サンプル・レスポンス本文
{
"results": [
{
"pgqlStatement": "DROP PROPERTY GRAPH TEST_GRAPH",
"result": "Graph successfully dropped",
"success": true,
"error": null,
"started": 1689656429130,
"ended": 1689656429198
},
{
"pgqlStatement": "CREATE PROPERTY GRAPH TEST_GRAPH VERTEX TABLES( Male KEY (id) LABEL Male PROPERTIES ARE ALL COLUMNS EXCEPT (gender), Female KEY (id) LABEL Female PROPERTIES ARE ALL COLUMNS EXCEPT (gender) ) EDGE TABLES( knowsmm KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Male LABEL knows PROPERTIES (mval, firstMetAt, since), knowsmf KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Female LABEL knows PROPERTIES (mval, firstMetAt, since), knowsfm KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Male LABEL knows PROPERTIES (mval, firstMetAt, since), knowsff KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Female LABEL knows PROPERTIES (mval, firstMetAt, since), friendOfmm KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Male LABEL friendOf PROPERTIES (strength), friendOfmf KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Female LABEL friendOf PROPERTIES (strength), friendOffm KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Male LABEL friendOf PROPERTIES (strength), friendOfff KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Female LABEL friendOf PROPERTIES (strength) ) OPTIONS ( pg_view )",
"result": "Graph successfully created",
"success": true,
"error": null,
"started": 1689656429198,
"ended": 1689656429458
},
{
"pgqlStatement": "SELECT v FROM MATCH (v) ON TEST_GRAPH LIMIT 1",
"result": "{\"schema\":\"GRAPHUSER\",\"name\":\"TEST_GRAPH\",\"resultSetId\":\"\",\"graph\":{\"vertices\":[{\"id\":\"MALE(0)\",\"properties\":{\"AGE\":\"40\",\"BVAL\":\"Y\",\"LNAME\":\"Brown\",\"FNAME\":\"Bill\",\"PREFERENCES\":\"{ \\\"color\\\": \\\"blue\\\", \\\"number\\\": \\\"5\\\" }\",\"ID\":\"0\",\"TEXT\":\"the cat sat on the mat\",\"MVAL\":\"y\"}}],\"edges\":[],\"numResults\":1},\"table\":\"V\\nMALE(0)\"}",
"success": true,
"error": null,
"started": 1689656429458,
"ended": 1689656430029
}
]
}
cURLの例
curl --location --request POST 'https://localhost:7007/v2/runQuery' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token>' \
--data '{
"statements": [
"DROP PROPERTY GRAPH TEST_GRAPH",
"CREATE PROPERTY GRAPH TEST_GRAPH VERTEX TABLES( Male KEY (id) LABEL Male PROPERTIES ARE ALL COLUMNS EXCEPT (gender), Female KEY (id) LABEL Female PROPERTIES ARE ALL COLUMNS EXCEPT (gender) ) EDGE TABLES( knowsmm KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Male LABEL knows PROPERTIES (mval, firstMetAt, since), knowsmf KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Female LABEL knows PROPERTIES (mval, firstMetAt, since), knowsfm KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Male LABEL knows PROPERTIES (mval, firstMetAt, since), knowsff KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Female LABEL knows PROPERTIES (mval, firstMetAt, since), friendOfmm KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Male LABEL friendOf PROPERTIES (strength), friendOfmf KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Female LABEL friendOf PROPERTIES (strength), friendOffm KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Male LABEL friendOf PROPERTIES (strength), friendOfff KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Female LABEL friendOf PROPERTIES (strength) ) OPTIONS ( pg_view )",
"SELECT v FROM MATCH (v) ON TEST_GRAPH LIMIT 1"
],
"driver": "PGQL_IN_DATABASE",
"formatter": "GVT",
"parameters": {
"dynamicSampling": 2,
"parallel": 8,
"start": 0,
"size": 100
},
"visualize": true
}'
親トピック: グラフ・サーバーのREST APIバージョン2
19.1.5 データベース・バージョンの取得
GET https://localhost:7007/v2/dbVersion
グラフ・サーバーが接続されているデータベース・バージョンを取得します。
バージョン: v2
リクエスト
リクエスト・ヘッダー
- Accept:
application/json; charset=UTF-8
- Header:
Authorization: Bearer <token>
- Content-Type:
application/json
レスポンス
- 200 OK
- Content-Type:
application/json
サンプル・レスポンス本文
{
"dbVersion": "23.0"
}
cURLの例
curl --location --request GET 'https://localhost:7007/v2/dbVersion' \
--header 'Authorization: Bearer <token>'
親トピック: グラフ・サーバーのREST APIバージョン2
19.1.6 ユーザーの取得
GET https://localhost:7007/v2/user
グラフ・サーバーに現在接続されているユーザー名を取得します(ユーザー名はトークンに関連付けられています)。
バージョン: v2
リクエスト
リクエスト・ヘッダー
- Accept:
application/json; charset=UTF-8
- Header:
Authorization: Bearer <token>
- Content-Type:
application/json
レスポンス
- 200 OK
- Content-Type:
application/json
サンプル・レスポンス本文
{
"username": "graphuser"
}
cURLの例
curl --location --request GET 'https://localhost:7007/v2/user' \
--header 'Authorization: Bearer <token>'
親トピック: グラフ・サーバーのREST APIバージョン2
19.1.7 非同期RESTエンドポイント
グラフ・サーバーのRESTエンドポイントは、問合せの取消しをサポートしています。
問合せを取り消すには、次の非同期RESTエンドポイントを使用して問合せを送信する必要があります。
19.1.7.1 非同期PGQL問合せの実行
POST https://localhost:7007/v2/runQueryAsync
プロパティ・グラフでPGQL問合せを非同期で実行します。
バージョン: v2
リクエスト
リクエスト・ヘッダー
- Accept:
application/json; charset=UTF-8
- Header:
Authorization: Bearer <token>
- Content-Type:
application/json
リクエスト問合せのパラメータ: 詳細は、表19-3を参照してください。
サンプル・リクエスト本文
{
"statements": [
"DROP PROPERTY GRAPH TEST_GRAPH",
"CREATE PROPERTY GRAPH TEST_GRAPH VERTEX TABLES( Male KEY (id) LABEL Male PROPERTIES ARE ALL COLUMNS EXCEPT (gender), Female KEY (id) LABEL Female PROPERTIES ARE ALL COLUMNS EXCEPT (gender) ) EDGE TABLES( knowsmm KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Male LABEL knows PROPERTIES (mval, firstMetAt, since), knowsmf KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Female LABEL knows PROPERTIES (mval, firstMetAt, since), knowsfm KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Male LABEL knows PROPERTIES (mval, firstMetAt, since), knowsff KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Female LABEL knows PROPERTIES (mval, firstMetAt, since), friendOfmm KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Male LABEL friendOf PROPERTIES (strength), friendOfmf KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Female LABEL friendOf PROPERTIES (strength), friendOffm KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Male LABEL friendOf PROPERTIES (strength), friendOfff KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Female LABEL friendOf PROPERTIES (strength) ) OPTIONS ( pg_view )",
"SELECT v FROM MATCH (v) ON TEST_GRAPH LIMIT 1"
],
"driver": "PGQL_IN_DATABASE",
"formatter": "GVT",
"parameters": {
"dynamicSampling": 2,
"parallel": 8,
"start": 0,
"size": 100
},
"visualize": true
レスポンス
- 202 OK
- Content-Type:
application/json
サンプル・レスポンス本文
{
"message": "Query execution started.",
"result_id": 0
}
cURLの例
curl --location --request POST 'https://localhost:7007/v2/runQueryAsync' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token>' \
--data '{
"statements": [
"DROP PROPERTY GRAPH TEST_GRAPH",
"CREATE PROPERTY GRAPH TEST_GRAPH VERTEX TABLES( Male KEY (id) LABEL Male PROPERTIES ARE ALL COLUMNS EXCEPT (gender), Female KEY (id) LABEL Female PROPERTIES ARE ALL COLUMNS EXCEPT (gender) ) EDGE TABLES( knowsmm KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Male LABEL knows PROPERTIES (mval, firstMetAt, since), knowsmf KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Female LABEL knows PROPERTIES (mval, firstMetAt, since), knowsfm KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Male LABEL knows PROPERTIES (mval, firstMetAt, since), knowsff KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Female LABEL knows PROPERTIES (mval, firstMetAt, since), friendOfmm KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Male LABEL friendOf PROPERTIES (strength), friendOfmf KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Female LABEL friendOf PROPERTIES (strength), friendOffm KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Male LABEL friendOf PROPERTIES (strength), friendOfff KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Female LABEL friendOf PROPERTIES (strength) ) OPTIONS ( pg_view )",
"SELECT v FROM MATCH (v) ON TEST_GRAPH LIMIT 1"
],
"driver": "PGQL_IN_DATABASE",
"formatter": "GVT",
"parameters": {
"dynamicSampling": 2,
"parallel": 8,
"start": 0,
"size": 100
},
"visualize": true
}'
親トピック: 非同期RESTエンドポイント
19.1.7.2 非同期問合せ完了の確認
GET https://localhost:7007/v2/isAsyncQueryExecutionComplete/<result_id>
非同期問合せの実行が完了しているかどうかを確認します。
バージョン: v2
リクエスト・ヘッダー
- Accept:
application/json; charset=UTF-8
- Header:
Authorization: Bearer <token>
- Content-Type:
application/json
result_id:
PGQL問合せ実行結果ID。
レスポンス
- 200 OK
- Content-Type:
application/json
サンプル・レスポンス本文
true
cURLの例
curl --location --request GET 'https://localhost:7007/v2/isAsyncQueryExecutionComplete/<result-id>' \
--header 'Authorization: Bearer <token>'
親トピック: 非同期RESTエンドポイント
19.1.7.3 非同期問合せ結果の取得
GET https://localhost:7007/v2/runQueryAsync/<result_id>
非同期問合せの結果を取得します。
バージョン: v2
リクエスト
リクエスト・ヘッダー
- Accept:
application/json; charset=UTF-8
- Header:
Authorization: Bearer <token>
- Content-Type:
application/json
リクエスト・パスのパラメータ:
result_id:
PGQL問合せ実行結果ID。
レスポンス
- 200 OK
- Content-Type:
application/json
サンプル・レスポンス本文
{
"results": [
{
"pgqlStatement": "DROP PROPERTY GRAPH TEST_GRAPH",
"result": "Graph successfully dropped",
"success": true,
"error": null,
"started": 1689656429130,
"ended": 1689656429198
},
{
"pgqlStatement": "CREATE PROPERTY GRAPH TEST_GRAPH VERTEX TABLES( Male KEY (id) LABEL Male PROPERTIES ARE ALL COLUMNS EXCEPT (gender), Female KEY (id) LABEL Female PROPERTIES ARE ALL COLUMNS EXCEPT (gender) ) EDGE TABLES( knowsmm KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Male LABEL knows PROPERTIES (mval, firstMetAt, since), knowsmf KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Female LABEL knows PROPERTIES (mval, firstMetAt, since), knowsfm KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Male LABEL knows PROPERTIES (mval, firstMetAt, since), knowsff KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Female LABEL knows PROPERTIES (mval, firstMetAt, since), friendOfmm KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Male LABEL friendOf PROPERTIES (strength), friendOfmf KEY (id) SOURCE KEY (sid) REFERENCES Male DESTINATION KEY (did) REFERENCES Female LABEL friendOf PROPERTIES (strength), friendOffm KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Male LABEL friendOf PROPERTIES (strength), friendOfff KEY (id) SOURCE KEY (sid) REFERENCES Female DESTINATION KEY (did) REFERENCES Female LABEL friendOf PROPERTIES (strength) ) OPTIONS ( pg_view )",
"result": "Graph successfully created",
"success": true,
"error": null,
"started": 1689656429198,
"ended": 1689656429458
},
{
"pgqlStatement": "SELECT v FROM MATCH (v) ON TEST_GRAPH LIMIT 1",
"result": "{\"schema\":\"GRAPHUSER\",\"name\":\"TEST_GRAPH\",\"resultSetId\":\"\",\"graph\":{\"vertices\":[{\"id\":\"MALE(0)\",\"properties\":{\"AGE\":\"40\",\"BVAL\":\"Y\",\"LNAME\":\"Brown\",\"FNAME\":\"Bill\",\"PREFERENCES\":\"{ \\\"color\\\": \\\"blue\\\", \\\"number\\\": \\\"5\\\" }\",\"ID\":\"0\",\"TEXT\":\"the cat sat on the mat\",\"MVAL\":\"y\"}}],\"edges\":[],\"numResults\":1},\"table\":\"V\\nMALE(0)\"}",
"success": true,
"error": null,
"started": 1689656429458,
"ended": 1689656430029
}
]
}
cURLの例
curl --location --request GET 'https://localhost:7007/v2/runQueryAsync/<result-id>' \
--header 'Authorization: Bearer <token>'
親トピック: 非同期RESTエンドポイント
19.1.7.4 非同期問合せ実行の取消し
DELETE https://localhost:7007/v2/runQueryAsync/<result_id>
非同期問合せの実行を取り消します。
バージョン: v2
リクエスト
リクエスト・ヘッダー
- Accept:
application/json; charset=UTF-8
- Header:
Authorization: Bearer <token>
- Content-Type:
application/json
リクエスト・パスのパラメータ:
result_id:
PGQL問合せ実行結果id
。
レスポンス
- 200 Accepted
- Content-Type:
application/json
cURLの例
curl --location --request DELETE 'https://localhost:7007/v2/runQueryAsync/<result-id>' /
--header 'Authorization: Bearer <token>'
親トピック: 非同期RESTエンドポイント
19.2 グラフ・サーバーのREST APIバージョン1
グラフ・サーバーのREST APIバージョン1 (v1)について学習します。
19.2.1 ログイン
POST https://localhost:7007/ui/v1/login/
グラフ・サーバーにログインします。
バージョン: v1
認証: Cookieベースの認証を使用します。
表19-4 パラメータ
パラメータ | パラメータ・タイプ | 値 | 必須 |
---|---|---|---|
Content-type |
ヘッダー | application/json |
はい |
username |
本文 | <username> |
はい |
password |
本文 | <password> |
はい |
baseUrl |
本文 | グラフ・サーバー(PGX)またはデータベースを指す<baseUrl>
|
オプション。空の場合、/opt/oracle/graph/pgx/server/graph-server-webapp-23.3.0.war のweb.xml ファイル内のpgx.base_url パラメータ値が使用されます。
|
pgqlDriver |
本文 | 有効なPGQLドライバの構成値は次のとおりです。
|
はい |
sessionId |
本文 | グラフ・サーバー(PGX)からのsessionId
|
オプション |
リクエスト
次のcurl
コマンドは、グラフ・サーバーにユーザーをサインインします:
curl --cacert /etc/oracle/graph/ca_certificate.pem -c cookie.txt -X POST -H "Content-Type: application/json" -d '{"username": "<username>", "password": "<password>", "pgqlDriver": "<pgqlDriver>","baseUrl": "<baseUrl>", "sessionId": "<sessionId>" }' https://localhost:7007/ui/v1/login/
username
。たとえば:"oracle"
ログインに成功すると、サーバー・セッションCookieがCookieファイルcookie.txt
に格納されます。APIへのその後のコールで、このCookieファイルを使用します。
親トピック: グラフ・サーバーのREST APIバージョン1
19.2.2 グラフの取得
GET https://localhost:7007/ui/v1/graphs
ユーザーに属するすべてのグラフのリストを取得します。
バージョン: v1
リクエスト
次のcurl
コマンドは、ユーザーに属するすべてのグラフをリストします。
curl --cacert /etc/oracle/graph/ca_certificate.pem -b cookie.txt 'https://localhost:7007/ui/v1/graphs'
レスポンス: 現在のユーザーが使用できるグラフのリスト。たとえば:
[
{
"schema": "HR",
"graphName": "MY_GRAPH"
}
]
また、schema
パラメータは、グラフ・サーバー(PGX)で作成されたグラフの場合、NULL
になることに注意してください。
親トピック: グラフ・サーバーのREST APIバージョン1
19.2.3 PGQL問合せの実行
POST https://localhost:7007/ui/v1/query
プロパティ・グラフでPGQL問合せを実行します。
バージョン: v1
表19-5 リクエスト問合せのパラメータ
パラメータ | 説明 | 値 | 必須 |
---|---|---|---|
pgql |
PGQL問合せ文字列 | <PGQL_query> |
はい |
graph |
グラフの名前 | <graph_name> |
pgql 問合せパラメータにグラフ名が含まれている場合にのみ、オプションです。それ以外の場合は、必須です。
|
parallelism |
並列度 | <parallelism_value> |
オプション。
デフォルト値は、PGQLドライバ構成によって異なります。
|
size |
問合せ結果のフェッチ・サイズ(=行数) | <size_value> |
オプション。サイズのデフォルト値は100 です。
|
formatter |
グラフのフォーマッタ | <formatter_value> |
オプション。
サポートされているフォーマッタは次のとおりです:
デフォルト値は |
リクエスト
次のcurl
コマンドは、プロパティ・グラフでPGQL問合せを実行します。
curl --cacert /etc/oracle/graph/ca_certificate.pem -b cookie.txt 'https://localhost:7007/ui/v1/query?pgql=SELECT%20e%0AMATCH%20()-%5Be%5D-%3E()%0ALIMIT%205&graph=hr&size=100'
レスポンス: PGQL問合せの結果はJSON形式になります。
{
"name": "bank_graph_analytics_2",
"resultSetId": "pgql_14",
"graph": {
"idType": "number",
"vertices": [
{
"_id": "1",
"p": [],
"l": [
"Accounts"
],
"g": [
"anonymous_1"
]
},
{
"_id": "418",
"p": [],
"l": [
"Accounts"
],
"g": [
"anonymous_2"
]
},
{
"_id": "259",
"p": [],
"l": [
"Accounts"
],
"g": [
"anonymous_2"
]
}
],
"edges": [
{
"_id": "0",
"p": [
{
"n": "AMOUNT",
"v": "1000.0",
"s": false
}
],
"l": [
"Transfers"
],
"g": [
"e"
],
"s": "1",
"d": "259",
"u": false
},
{
"_id": "1",
"p": [
{
"n": "AMOUNT",
"v": "1000.0",
"s": false
}
],
"l": [
"Transfers"
],
"g": [
"e"
],
"s": "1",
"d": "418",
"u": false
}
],
"paths": [],
"totalNumResults": 2
},
"table": "e\nPgxEdge[provider=Transfers,ID=0]\nPgxEdge[provider=Transfers,ID=1]"
}
親トピック: グラフ・サーバーのREST APIバージョン1
19.2.4 ユーザーの取得
GET https://localhost:7007/ui/v1/user
現在のユーザーの名前を取得します。
バージョン: v1
リクエスト
次のcurl
コマンドは、現行ユーザーの名前を取得します。
curl --cacert /etc/oracle/graph/ca_certificate.pem -b cookie.txt 'https://localhost:7007/ui/v1/user'
レスポンス: 現行ユーザーの名前。たとえば:
"oracle"
親トピック: グラフ・サーバーのREST APIバージョン1
19.2.5 ログアウト
POST https://localhost:7007/ui/v1/logout/
グラフ・サーバーからログアウトします。
バージョン: v1
リクエスト
次のcurl
コマンドは、グラフ・サーバーから正常にログアウトするためのものです。
curl --cacert /etc/oracle/graph/ca_certificate.pem -b cookie.txt -X POST 'https://localhost:7007/ui/v1/logout/'
レスポンス: なし
ログアウトに成功すると、サーバーはHTTP
ステータス・コード200
を戻し、cookie.txt
ファイルのセッション・トークンが無効になります。
親トピック: グラフ・サーバーのREST APIバージョン1
19.2.6 非同期RESTエンドポイント
グラフ・サーバーのRESTエンドポイントは、問合せの取消しをサポートしています。
問合せを取り消すには、次の非同期RESTエンドポイントを使用して問合せを送信する必要があります。
19.2.6.1 非同期PGQL問合せの実行
GET https://localhost:7007/ui/v1/async-query
プロパティ・グラフでPGQL問合せを非同期で実行します。
バージョン: 1
問合せパラメータの詳細は、表19-5を参照してください。
リクエスト
次のcurl
コマンドは、プロパティ・グラフでPGQL問合せを非同期に実行します。
curl --cacert /etc/oracle/graph/ca_certificate.pem -b cookie.txt 'https://localhost:7007/ui/v1/async-query?pgql=SELECT%20e%0AMATCH%20()-%5Be%5D-%3E()%0ALIMIT%205&graph=hr¶llelism=&size=100'
レスポンス: なし。
ノート:
問合せの形式が正しくない場合、またはグラフが存在しない場合は、エラー・メッセージが返されます。親トピック: 非同期RESTエンドポイント
19.2.6.2 非同期問合せ完了の確認
GET https://localhost:7007/ui/v1/async-query-complete
非同期問合せの実行が完了しているかどうかを確認します。
バージョン: v1
リクエスト
次のcurl
コマンドは、PGQL問合せの実行が完了しているかどうかを確認します。
curl --cacert /etc/oracle/graph/ca_certificate.pem -b cookie.txt 'https://localhost:7007/ui/v1/async-query-complete'
レスポンス: 問合せの実行が完了したかどうかを示すブール。たとえば、
true
ノート:
現在実行中の問合せはHTTPセッションにアタッチされているため、リクエストID
を指定する必要はありません。セッションごとに1つの問合せのみを実行できます。問合せを同時実行するには、複数回ログインして複数のHTTPセッションを作成します。
親トピック: 非同期RESTエンドポイント
19.2.6.3 非同期問合せ結果の取得
GET https://localhost:7007/ui/v1/async-result
非同期問合せの結果を取得します。
バージョン: v1
ノート:
問合せ結果を取得するエンドポイントGET https://localhost:7007/ui/v1/async-result
は非推奨です。curl --cacert /etc/oracle/graph/ca_certificate.pem -b cookie.txt 'https://localhost:7007/ui/v1/async-result?pgql=SELECT%20e%0AMATCH%20()-%5Be%5D-%3E()%0ALIMIT%205&graph=hr¶llelism=&size=100'
リクエスト
次のcurl
コマンドは、正常に完了した問合せの結果を取得します。
curl --cacert /etc/oracle/graph/ca_certificate.pem -b cookie.txt 'https://localhost:7007/ui/v1/async-result'
レスポンス: PGQL問合せの結果はJSON形式になります。
{
"name": "bank_graph_analytics_2",
"resultSetId": "pgql_14",
"graph": {
"idType": "number",
"vertices": [
{
"_id": "1",
"p": [],
"l": [
"Accounts"
],
"g": [
"anonymous_1"
]
},
{
"_id": "418",
"p": [],
"l": [
"Accounts"
],
"g": [
"anonymous_2"
]
},
{
"_id": "259",
"p": [],
"l": [
"Accounts"
],
"g": [
"anonymous_2"
]
}
],
"edges": [
{
"_id": "0",
"p": [
{
"n": "AMOUNT",
"v": "1000.0",
"s": false
}
],
"l": [
"Transfers"
],
"g": [
"e"
],
"s": "1",
"d": "259",
"u": false
},
{
"_id": "1",
"p": [
{
"n": "AMOUNT",
"v": "1000.0",
"s": false
}
],
"l": [
"Transfers"
],
"g": [
"e"
],
"s": "1",
"d": "418",
"u": false
}
],
"paths": [],
"totalNumResults": 2
},
"table": "e\nPgxEdge[provider=Transfers,ID=0]\nPgxEdge[provider=Transfers,ID=1]"
}
親トピック: 非同期RESTエンドポイント
19.2.6.4 非同期問合せ実行の取消し
DELETE https://localhost:7007/ui/v1/async-query
非同期問合せの実行を取り消します。
バージョン: 1
リクエスト
次のcurl
コマンドは、プロパティ・グラフで現在実行中のPGQL問合せを取り消します。
curl -X DELETE --cacert /etc/oracle/graph/ca_certificate.pem -b cookie.txt 'https://localhost:7007/ui/v1/async-query'
レスポンス: 取消しの確認か、問合せの実行がすでに完了している場合はエラー・メッセージ。
親トピック: 非同期RESTエンドポイント