Scheduler REST クライアント API

Scheduler RMI Client API の他に、Scheduler 管理ツールで提供されている REST API を通じて Scheduler サーバーとやり取りすることもできます。REST API のドキュメントは、 http://<host>:<port>/webadmin/denodo-scheduler-admin/swagger-ui.html で入手可能です。

ただし、この API を使用するには、まず認証アクションを行う必要があります。すべてのリクエストに HTTP Basic 認証 (RFC 7617) を使用する パブリック か、リクエスト前にログインを行いリクエスト後にログアウトする プライベート のどちらかの手法を使用します。なお、外部 REST API クライアントについては、プライベートは非推奨であるため、パブリックを使用してください。

パブリック

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"}'

プライベート (非推奨)

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

  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