第5章 Decision Server 用の Decision Manager コントローラー REST API テンプレートおよびインスタンス
Red Hat Decision Manager は Decision Manager コントローラー REST API を提供し、これを使用することで Business Central ユーザーインターフェイスを使わずに Decision Server の テンプレート (設定) や Decision Server インスタンス (リモートサーバー)、関連する KIE コンテナー (デプロイメントユニット) を操作することができます。この API のサポートにより、Red Hat Decision Manager サーバーとリソースをより効率的に維持でき、Red Hat Decision Manager の統合と開発を最適化できるようになります。
Decision Manager コントローラー REST API を使用すると、以下のアクションを実行できます。
- Decision Server テンプレート、インスタンス、および関連する KIE コンテナーについての情報の取得
- Decision Server テンプレートおよびインスタンスに関連付けられ KIE コンテナーの更新、起動、停止
- Decision Server テンプレートの作成、更新、削除
- Decision Server インスタンスの作成、更新、削除
Decision Manager コントローラー REST API への要求には、以下のコンポーネントが必要です。
- 認証
Decision Manager コントローラー REST API は、コントローラーのタイプによって、以下のユーザーロールに HTTP の Basic 認証またはトークンベースの認証を必要とします。
-
Business Central をインストールしており、ビルトインの Decision Manager コントローラーを使用する場合は、
rest-allのユーザーロール。 -
ヘッドレス Decision Manager コントローラーを Business Central とは別にインストールしている場合は、
kie-serverのユーザーロール。
お使いの Red Hat Decision Manager に設定されているユーザーロールを表示するには、
~/$SERVER_HOME/standalone/configuration/application-roles.propertiesと~/application-users.propertiesに移動します。ユーザーに
kie-serverロールかrest-allロール、もしくはそれら両方を追加するには、~/$SERVER_HOME/binに移動し、ロールを指定して以下のコマンドを実行します。./add-user.sh -a --user <USERNAME> --password <PASSWORD> --role kie-server,rest-all
$ ./add-user.sh -a --user <USERNAME> --password <PASSWORD> --role kie-server,rest-allCopy to Clipboard Copied! Toggle word wrap Toggle overflow Decision Manager コントローラーのアクセスで
kie-serverまたはrest-allユーザーを設定するには、~/$SERVER_HOME/standalone/configuration/standalone-full.xmlを開き、(該当する場合は)org.kie.serverプロパティーのコメントを解除して、コントローラーユーザーログイン認証情報とコントローラーの位置を (必要に応じて) 追加します。<property name="org.kie.server.location" value="http://localhost:8080/kie-server/services/rest/server"/> <property name="org.kie.server.controller" value="http://localhost:8080/decision-central/rest/controller"/> <property name="org.kie.server.controller.user" value="baAdmin"/> <property name="org.kie.server.controller.pwd" value="password@1"/> <property name="org.kie.server.id" value="default-kieserver"/>
<property name="org.kie.server.location" value="http://localhost:8080/kie-server/services/rest/server"/> <property name="org.kie.server.controller" value="http://localhost:8080/decision-central/rest/controller"/> <property name="org.kie.server.controller.user" value="baAdmin"/> <property name="org.kie.server.controller.pwd" value="password@1"/> <property name="org.kie.server.id" value="default-kieserver"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーロールと Red Hat Decision Manager のインストールオプションの詳細は、Red Hat Decision Manager インストールの計画 を参照してください。
-
Business Central をインストールしており、ビルトインの Decision Manager コントローラーを使用する場合は、
- HTTP ヘッダー
Decision Manager コントローラー REST API は、API 要求に以下の HTTP ヘッダーを必要とします。
Accept: 要求元のクライアントが受け付けるデータ形式:-
application/json(JSON) -
application/xml(XML、JAXB 用)
-
Content-Type:POSTまたはPUTAPI 要求データ向けのデータ形式:-
application/json(JSON) -
application/xml(XML、JAXB 用)
-
- HTTP メソッド
Decision Manager コントローラー REST API は、API 要求に以下の HTTP メソッドをサポートしています。
-
GET: 指定したリソースのエンドポイントから指定した情報を取得する -
POST: リソースまたはリソースインスタンスを更新する -
PUT: リソースまたはリソースインスタンスを作成する -
DELETE: リソースまたはリソースインスタンスを削除する
-
- ベース URL
-
Decision Manager コントローラー REST API 要求のベース URL は
http://SERVER:PORT/CONTROLLER/rest/で、Business Central のビルトイン Decision Manager コントローラーを使用している場合はhttp://localhost:8080/decision-central/rest/のようになります。 - エンドポイント
指定した Decision Server テンプレートにおける
/controller/management/servers/{serverTemplateId}などの Decision Manager コントローラー REST API のエンドポイントは、Decision Manager コントローラー REST API のベース URL に追記する URI で、Red Hat Decision Manager の対応するサーバーリソースやサーバーリソースのタイプにアクセスするためのものです。/spaces/{serverTemplateId}エンドポイントの要求 URL 例http://localhost:8080/decision-central/rest/controller/management/servers/default-kieserver- 要求パラメーターおよび要求データ
Decision Manager コントローラー REST API 要求のなかには、特定リソースを特定またはフィルターリングし、特定のアクションを実行するために、要求 URL パスで特定のパラメーターを必要とします。URL パラメーターは、
?<PARAM>=<VALUE>&<PARAM>=<VALUE>の形式でエンドポイントに追記します。DELETE 要求 URL のパラメーター例
http://localhost:8080/decision-central/rest/controller/server/new-kieserver-instance?location=http://localhost:8080/kie-server/services/rest/serverHTTP
POSTとPUTの要求は、さらに要求のボディもしくはデータのあるファイルが必要になる場合があります。PUT 要求 URL と JSON 要求のボディデータの例
http://localhost:8080/decision-central/rest/controller/management/servers/new-kieserverCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.1. REST クライアントまたは curl ユーティリティーを使用した Decision Manager コントローラー REST API による要求送信 リンクのコピーリンクがクリップボードにコピーされました!
Decision Manager コントローラーは REST API を提供し、これを使用することで Business Central ユーザーインターフェイスを使わずに Decision Server の テンプレート (設定) や Decision Server インスタンス (リモートサーバー)、関連する KIE コンテナー (デプロイメントユニット) を操作することができます。Decision Manager コントローラー REST API 要求は、REST クライアントや curl ユーティリティーを使用して送信することができます。
前提条件
- Decision Server をインストールし、実行している。
- Decision Manager コントローラーもしくはヘッドレス Decision Manager コントローラーがインストールされ、実行している。
-
Business Central をインストールしている場合は Decision Manager コントローラーにアクセスする
rest-allユーザーロールがある。もしくは、Business Central とは別にインストールされたヘッドレス Decision Manager コントローラーにアクセスするkie-serverユーザーロールがある。
手順
-
要求の送信先となる関連する API エンドポイント を特定します。Decision Manager コントローラーから Decision Server テンプレートを取得する
[GET] /controller/management/serversなどです。 REST クライアントまたは curl ユーティリティーで、
controller/management/serversへのGET要求に以下のコンポーネントを記入します。ご自分のユースケースに合わせて、要求詳細を調整します。REST クライアントの場合:
-
Authentication:
rest-allロールのある Decision Manager コントローラーユーザーまたはkie-serverロールを持つヘッドレス Decision Manager コントローラーユーザーのユーザー名とパスワードを入力します。 HTTP Headers: 以下のヘッダーを設定します。
-
Accept:application/json
-
-
HTTP method:
GETに設定します。 -
URL: Decision Manager コントローラー REST API ベース URL とエンドポイントを入力します (例:
http://localhost:8080/decision-central/rest/controller/management/servers/new-kieserver)。
curl ユーティリティーの場合:
-
-u:rest-allロールのある Decision Manager コントローラーユーザーまたはkie-serverロールを持つヘッドレス Decision Manager コントローラーユーザーのユーザー名とパスワードを入力します。 -H: 以下のヘッダーを設定します。-
Accept:application/json
-
-
-X:GETに設定します。 -
URL: Decision Manager コントローラー REST API ベース URL とエンドポイントを入力します (例:
http://localhost:8080/decision-central/rest/controller/management/servers/new-kieserver)。
curl -u 'baAdmin:password@1' -H "Accept: application/json" -X GET "http://localhost:8080/decision-central/rest/controller/management/servers"
curl -u 'baAdmin:password@1' -H "Accept: application/json" -X GET "http://localhost:8080/decision-central/rest/controller/management/servers"Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Authentication:
要求を実行し、Decision Manager コントローラーの応答を確認します。
サーバー応答の例 (JSON):
Copy to Clipboard Copied! Toggle word wrap Toggle overflow REST クライアントまたは curl ユーティリティーで、
/controller/management/servers/{serverTemplateId}へのPUT要求を以下のコンポーネントで送信し、新規の Decision Server テンプレートを作成します。ご自分のユースケースに合わせて、要求詳細を調整します。REST クライアントの場合:
-
Authentication:
rest-allロールのある Decision Manager コントローラーユーザーまたはkie-serverロールを持つヘッドレス Decision Manager コントローラーユーザーのユーザー名とパスワードを入力します。 HTTP Headers: 以下のヘッダーを設定します。
-
Accept:application/json -
Content-Type:application/json
-
-
HTTP method:
PUTに設定します。 -
URL: Decision Manager コントローラー REST API ベース URL とエンドポイントを入力します (例:
http://localhost:8080/decision-central/rest/controller/management/servers/new-kieserver)。 - 要求の本文: 新規 Decision Server テンプレート用の設定がある JSON 要求の本文を追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl ユーティリティーの場合:
-
-u:rest-allロールのある Decision Manager コントローラーユーザーまたはkie-serverロールを持つヘッドレス Decision Manager コントローラーユーザーのユーザー名とパスワードを入力します。 -H: 以下のヘッダーを設定します。-
Accept:application/json -
Content-Type:application/json
-
-
-X:PUTに設定します。 -
URL: Decision Manager コントローラー REST API ベース URL とエンドポイントを入力します (例:
http://localhost:8080/decision-central/rest/controller/management/servers/new-kieserver)。 -
-d: 新規 Decision Server テンプレート用の設定がある JSON 要求の本文またはファイル (@file.json) を追加します。
curl -u 'baAdmin:password@1' -H "Accept: application/json" -H "Content-Type: application/json" -X PUT "http://localhost:8080/decision-central/rest/controller/management/servers/new-kieserver" -d "{ \"server-id\": \"new-kieserver\", \"server-name\": \"new-kieserver\", \"container-specs\": [], \"server-config\": {}, \"capabilities\": [ \"RULE\", \"PROCESS\", \"PLANNING\" ]}"curl -u 'baAdmin:password@1' -H "Accept: application/json" -H "Content-Type: application/json" -X PUT "http://localhost:8080/decision-central/rest/controller/management/servers/new-kieserver" -d "{ \"server-id\": \"new-kieserver\", \"server-name\": \"new-kieserver\", \"container-specs\": [], \"server-config\": {}, \"capabilities\": [ \"RULE\", \"PROCESS\", \"PLANNING\" ]}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl -u 'baAdmin:password@1' -H "Accept: application/json" -H "Content-Type: application/json" -X PUT "http://localhost:8080/decision-central/rest/controller/management/servers/new-kieserver" -d @my-server-template-configs.json
curl -u 'baAdmin:password@1' -H "Accept: application/json" -H "Content-Type: application/json" -X PUT "http://localhost:8080/decision-central/rest/controller/management/servers/new-kieserver" -d @my-server-template-configs.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Authentication:
要求を実行し、Decision Manager コントローラーの応答が正常であることを確認します。
要求エラーが発生した場合は、返されたエラーコードメッセージを確認して、それに応じて要求を調整します。