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-24.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エンドポイント