Scheduler REST クライアント API¶
Scheduler RMI クライアント API の他に、Scheduler 管理ツールで提供されている REST API を通じて Scheduler サーバーとやり取りすることもできます。20210715 以降にリリースされた更新プログラムの場合、REST API のドキュメントは、 http://<host>:<port>/webadmin/denodo-scheduler-admin/swagger-ui/index.html
で入手可能です。
更新プログラム 20210715 またはそれ以前のプログラムでは、ドキュメントは http://<host>:<port>/webadmin/denodo-scheduler-admin/swagger-ui.html
で入手できます。
ただし、この API を使用するには、まず認証アクションを行う必要があります。それにはいくつかの手法があります。
1.すべてのリクエストに HTTP Basic 認証 (RFC 7617) を使用する パブリック (ステートレス) またはステートレスモードまたはステートフルモードで使用可能な OAuth。
2.リクエスト前にログインを行いリクエスト後にログアウトする プライベート 。なお、外部 REST API クライアントについては、プライベートは廃止されているため、パブリックを使用してください。
パブリック¶
Basic 認証¶
Basic 認証を使用したリクエストを行うには、次の手順に従って実施してください。
ユーザー ID とパスワードをコロン (「:」) でつないで、ユーザーパスを作成します。
Base64 でユーザーパスをエンコードし、US-ASCII の文字列にします。
Authorization ヘッダーを作成します。形式は、「Authorization: Basic <BASE64 でエンコードしたユーザーパス>」です。
/public/api/projects
を呼び出してプロジェクトのリストを取得する例を以下に示します。ここで、ユーザー名/パスワードは admin/admin とします。
curl --location --request GET 'http://localhost:9090/webadmin/denodo-scheduler-admin/public/api/projects?uri=//localhost:8000' --header 'Authorization: Basic YWRtaW46YWRtaW4='
新しいプロジェクトを追加する例。
curl --location --request POST 'http://localhost:9090/webadmin/denodo-scheduler-admin/public/api/projects?uri=//localhost:8000' --header 'Authorization: Basic YWRtaW46YWRtaW4=' --header 'Content-Type: application/json' --data-raw '{"description": "Postman Test project","name": "Test project 1"}'
Oauth ステートレス認証¶
Oauth ステートレス認証を使用してリクエストを実行するには、まず Virtual DataPort で Oauth を有効にする 必要があります。
次に、各リクエストに以下を含める必要があります。
アクセストークン。
Authorization
ヘッダーに含めます。uri
パラメータ。//<host>:<port>
という形式で Scheduler サーバーを参照します。
Oauth ステートレス認証を使用してエンドポイント /public/api/projects
を呼び出すことによってプロジェクトのリストを取得する例を以下に示します。
curl --location --request GET 'http://localhost:9090/webadmin/denodo-scheduler-admin/public/api/projects?uri=//localhost:8000' --header 'Authorization: Bearer <OAUTH-ACCESS-TOKEN>'.
注釈
この認証方法は、デフォルトで無効になっています。有効にするには、Scheduler Administration Tool の構成ファイル <DENODO_HOME>/conf/scheduler-webadmintool/ConfigurationParameters.properties
でパラメータ oauth.statelessEnabled=true
を設定します。
Oauth ステートフル認証¶
Oauth ステートフル認証を使用してリクエストを実行するには、まず Virtual DataPort で Oauth を有効にする 必要があります。
次に、認証を成功させるために以下の手順を実行します。
http://<host>:<port>/webadmin/denodo-scheduler-admin/Ping
を GET するレスポンスから抽出する。具体的には、ヘッダーから X-XSRF-TOKEN の値を抽出し、クッキーから JSESSIONID を抽出する
Oauth アクセストークンを含む
http://<host>:<port>/webadmin/denodo-scheduler-admin/accesstoken
を POST する
注釈
このリクエストには、以下の値も含める必要があります。
手順 2 で抽出した X-XSRF-TOKEN ヘッダーの値
手順 2 で抽出した JSESSIONID Cookie の値
uri
パラメータ。//<host>:<port>
という形式で Scheduler サーバーを参照します。
レスポンスから抽出する。具体的には、ヘッダーから X-XSRF-TOKEN の値を抽出し、クッキーから JSESSIONID を抽出する。
任意の API エンドポイントをリクエストする
GET リクエスト
注釈
GET リクエストには以下の値を含める必要があります。
手順 3 で抽出した JSESSIONID Cookie の値
URI
ヘッダー。//<host>:<port>
という形式で Scheduler サーバーを参照します。
POST/PUT/DELETE リクエスト
注釈
POST/PUT/DELETE リクエストには以下の値を含める必要があります。
手順 3 で抽出した X-XSRF-TOKEN ヘッダーの値
手順 3 で抽出した JSESSIONID Cookie の値
URI
ヘッダー。//<host>:<port>
という形式で Scheduler サーバーを参照します。
http://<host>:<port>/webadmin/denodo-scheduler-admin/logout
を POST する
注釈
このリクエストには、以下の値を含める必要があります。
手順 3 で抽出した X-XSRF-TOKEN ヘッダーの値
手順 3 で抽出した JSESSIONID Cookie の値
URI
ヘッダー。//<host>:<port>
という形式で Scheduler サーバーを参照します。
Oauth ステートフル認証を使用してプロジェクトのリストを取得し、新しいプロジェクトを作成する例を以下に示します。この例では、API エンドポイント /api/projects
を使用しています。
Ping
curl --location --request GET 'http://localhost:9090/webadmin/denodo-scheduler-admin/Ping' --header 'URI: //localhost:8000' -i
Login
curl --location --request POST 'http://localhost:9090/webadmin/denodo-scheduler-admin/admin/accesstoken?uri=//localhost:8000' --header 'X-XSRF-TOKEN: <XSRF-TOKEN-VALUE-FROM-HEADER>' --header 'Cookie: JSESSIONID=<JSESSIONID-VALUE-FROM-COOKIE>' --header 'Authorization: Bearer <OAUTH-ACCESS-TOKEN>' -i
プロジェクトのリストの取得
curl --location --request GET 'http://localhost:9090/webadmin/denodo-scheduler-admin/api/projects' --header 'URI: //localhost:8000' --header 'Cookie: JSESSIONID=<JSESSIONID-VALUE-FROM-COOKIE>' -i
新しいプロジェクトの追加
curl --location --request POST 'http://localhost:9090/webadmin/denodo-scheduler-admin/api/projects' --header 'URI: //localhost:8000' --header 'Content-Type: application/json' --header 'X-XSRF-TOKEN: <XSRF-TOKEN-VALUE-FROM-HEADER>' --header 'Cookie: JSESSIONID=<JSESSIONID-VALUE-FROM-COOKIE>' --data-raw '{"description": "projDesc","name": "proj"}' -i
Logout
curl --location --request POST 'http://localhost:9090/webadmin/denodo-scheduler-admin/logout' --header 'URI: //localhost:8000' --header 'X-XSRF-TOKEN: <XSRF-TOKEN-VALUE-FROM-HEADER>' --header 'Cookie: JSESSIONID=<JSESSIONID-VALUE-FROM-COOKIE>' -i
注釈
この認証方法は、デフォルトで無効になっています。有効にするには、Scheduler Administration Tool の構成ファイル <DENODO_HOME>/conf/scheduler-webadmintool/ConfigurationParameters.properties
でパラメータ oauth.statefulEnabled=true
を設定します。
プライベート (非推奨)¶
認証を行うには、次の手順に従って実施してください。
http://<host>:<port>/webadmin/denodo-scheduler-admin/Ping
を GET するレスポンスから抽出する。具体的には、ヘッダーから X-XSRF-TOKEN の値を抽出し、クッキーから JSESSIONID を抽出する。
http://<host>:<port>/webadmin/denodo-scheduler-admin/login
を POST する
注釈
次の内容を、リクエストに追加する必要があります。
Header X-XSRF-TOKEN with the value of X-XSRF-TOKEN header got in 2
Cookie JSESSIONID with the value of JSESSIONID cookie got in 2
レスポンスから抽出する。具体的には、ヘッダーから X-XSRF-TOKEN の値を抽出し、クッキーから JSESSIONID を抽出する。
以下の値を使って API エンドポイントをリクエストする
GET リクエスト:
注釈
次の内容を、リクエストに追加する必要があります。
最後に取得した JSESSIONID クッキーの値を持つ JSESSIONID クッキー
POST リクエスト:
注釈
次の内容を、リクエストに追加する必要があります。
最後に取得した X-XSRF-TOKEN ヘッダーの値を持つ X-XSRF-TOKEN ヘッダー
最後に取得した JSESSIONID クッキーの値を持つ JSESSIONID クッキー
http://<host>:<port>/webadmin/denodo-scheduler-admin/logout
を POST する
注釈
次の内容を、リクエストに追加する必要があります。
最後に取得した X-XSRF-TOKEN ヘッダーの値を持つ X-XSRF-TOKEN ヘッダー
最後に取得した JSESSIONID クッキーの値を持つ JSESSIONID クッキー
/api/projects
を呼び出してプロジェクトのリストを取得し、新しいプロジェクトを作成する例を以下に示します。
Ping
curl --location --request GET 'http://localhost:9090/webadmin/denodo-scheduler-admin/Ping' --header 'URI: //localhost:8000' -i
Login
curl --location --request POST 'http://localhost:9090/webadmin/denodo-scheduler-admin/login' --header 'X-XSRF-TOKEN: <XSRF-TOKEN-VALUE-FROM-HEADER>' --header 'Cookie: JSESSIONID=<JSESSIONID-VALUE-FROM-COOKIE>' --form 'username=admin' --form 'password=admin' --form 'uri=//localhost:8000' -i
プロジェクトのリスト
curl --location --request GET 'http://localhost:9090/webadmin/denodo-scheduler-admin/api/projects' --header 'URI: //localhost:8000' --header 'Cookie: JSESSIONID=<JSESSIONID-VALUE-FROM-COOKIE>' -i
新しいプロジェクトの追加
curl --location --request POST 'http://localhost:9090/webadmin/denodo-scheduler-admin/api/projects' --header 'URI: //localhost:8000' --header 'Content-Type: application/json' --header 'X-XSRF-TOKEN: <XSRF-TOKEN-VALUE-FROM-HEADER>' --header 'Cookie: JSESSIONID=<JSESSIONID-VALUE-FROM-COOKIE>' --data-raw '{"description": "projDesc","name": "proj"}' -i
Logout
curl --location --request POST 'http://localhost:9090/webadmin/denodo-scheduler-admin/logout' --header 'URI: //localhost:8000' --header 'X-XSRF-TOKEN: <XSRF-TOKEN-VALUE-FROM-HEADER>' --header 'Cookie: JSESSIONID=<JSESSIONID-VALUE-FROM-COOKIE>' -i