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 認証を使用したリクエストを行うには、次の手順に従って実施してください。
ユーザー 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"}'
プライベート (非推奨)¶
認証を行うには、次の手順に従って実施してください。
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