USER MANUALS


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 認証を使用したリクエストを行うには、次の手順に従って実施してください。

  1. ユーザー ID とパスワードをコロン (「:」) でつないで、ユーザーパスを作成します。

  2. Base64 でユーザーパスをエンコードし、US-ASCII の文字列にします。

  3. 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 を有効にする 必要があります。

次に、各リクエストに以下を含める必要があります。

  1. アクセストークン。 Authorization ヘッダーに含めます。

  2. 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 を有効にする 必要があります。

次に、認証を成功させるために以下の手順を実行します。

  1. http://<host>:<port>/webadmin/denodo-scheduler-admin/Ping を GET する

  2. レスポンスから抽出する。具体的には、ヘッダーから X-XSRF-TOKEN の値を抽出し、クッキーから JSESSIONID を抽出する

  3. Oauth アクセストークンを含む http://<host>:<port>/webadmin/denodo-scheduler-admin/accesstoken を POST する

注釈

このリクエストには、以下の値も含める必要があります。

  1. 手順 2 で抽出した X-XSRF-TOKEN ヘッダーの値

  2. 手順 2 で抽出した JSESSIONID Cookie の値

  3. uri パラメータ。 //<host>:<port> という形式で Scheduler サーバーを参照します。

  1. レスポンスから抽出する。具体的には、ヘッダーから X-XSRF-TOKEN の値を抽出し、クッキーから JSESSIONID を抽出する。

  2. 任意の API エンドポイントをリクエストする

    1. GET リクエスト

    注釈

    GET リクエストには以下の値を含める必要があります。

    1. 手順 3 で抽出した JSESSIONID Cookie の値

    2. URI ヘッダー。 //<host>:<port> という形式で Scheduler サーバーを参照します。

    1. POST/PUT/DELETE リクエスト

    注釈

    POST/PUT/DELETE リクエストには以下の値を含める必要があります。

    1. 手順 3 で抽出した X-XSRF-TOKEN ヘッダーの値

    2. 手順 3 で抽出した JSESSIONID Cookie の値

    3. URI ヘッダー。 //<host>:<port> という形式で Scheduler サーバーを参照します。

  3. http://<host>:<port>/webadmin/denodo-scheduler-admin/logout を POST する

注釈

このリクエストには、以下の値を含める必要があります。

  1. 手順 3 で抽出した X-XSRF-TOKEN ヘッダーの値

  2. 手順 3 で抽出した JSESSIONID Cookie の値

  3. URI ヘッダー。 //<host>:<port> という形式で Scheduler サーバーを参照します。

Oauth ステートフル認証を使用してプロジェクトのリストを取得し、新しいプロジェクトを作成する例を以下に示します。この例では、API エンドポイント /api/projects を使用しています。

  1. Ping

curl --location --request GET 'http://localhost:9090/webadmin/denodo-scheduler-admin/Ping' --header 'URI: //localhost:8000' -i
  1. 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
  1. プロジェクトのリストの取得

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
  1. 新しいプロジェクトの追加

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
  1. 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 を設定します。

プライベート (非推奨)

認証を行うには、次の手順に従って実施してください。

  1. http://<host>:<port>/webadmin/denodo-scheduler-admin/Ping を GET する

  2. レスポンスから抽出する。具体的には、ヘッダーから X-XSRF-TOKEN の値を抽出し、クッキーから JSESSIONID を抽出する。

  3. 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

  1. レスポンスから抽出する。具体的には、ヘッダーから X-XSRF-TOKEN の値を抽出し、クッキーから JSESSIONID を抽出する。

  2. 以下の値を使って API エンドポイントをリクエストする

    1. GET リクエスト:

    注釈

    次の内容を、リクエストに追加する必要があります。

    最後に取得した JSESSIONID クッキーの値を持つ JSESSIONID クッキー

    1. POST リクエスト:

    注釈

    次の内容を、リクエストに追加する必要があります。

    最後に取得した X-XSRF-TOKEN ヘッダーの値を持つ X-XSRF-TOKEN ヘッダー

    最後に取得した JSESSIONID クッキーの値を持つ JSESSIONID クッキー

  3. http://<host>:<port>/webadmin/denodo-scheduler-admin/logout を POST する

注釈

次の内容を、リクエストに追加する必要があります。

最後に取得した X-XSRF-TOKEN ヘッダーの値を持つ X-XSRF-TOKEN ヘッダー

最後に取得した JSESSIONID クッキーの値を持つ JSESSIONID クッキー

/api/projects を呼び出してプロジェクトのリストを取得し、新しいプロジェクトを作成する例を以下に示します。

  1. Ping

curl --location --request GET 'http://localhost:9090/webadmin/denodo-scheduler-admin/Ping' --header 'URI: //localhost:8000' -i
  1. 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
  1. プロジェクトのリスト

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
  1. 新しいプロジェクトの追加

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
  1. 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
Add feedback