第28章 Business Central スペースおよびプロジェクト用のナレッジストア REST API
Red Hat Process Automation Manager はナレッジストア REST API を提供し、これを使用することで Business Central ユーザーインターフェイスを使わずに Red Hat Process Automation Manager のプロジェクトやスペースを操作することができます。ナレッジストアは、Red Hat Process Automation Manager のアセット用のアーティファクトリーポジトリーです。この API のサポートにより、Business Central プロジェクトとスペースの活用と、それらのメンテナンスの自動化が可能になります。
ナレッジストア REST API を使用すると、以下のアクションが可能になります。
- 全プロジェクトおよびスペースに関する情報の取得
- プロジェクトおよびスペースの作成、更新、削除
- プロジェクトのビルド、デプロイ、およびテスト
- 以前のナレッジストア REST API 要求または jobs の情報の取得
ナレッジストア REST API 要求には以下のコンポーネントが必要です。
- 認証
ナレッジストア REST API は、ユーザーロール
rest-allに HTTP の Basic 認証またはトークンベースの認証を必要とします。お使いの Red Hat Process Automation Manager に設定されているユーザーロールを表示するには、~/$SERVER_HOME/standalone/configuration/application-roles.propertiesと~/application-users.propertiesに移動します。ユーザーに
rest-allロールを追加するには、~/$SERVER_HOME/binに移動して以下のコマンドを実行します。./bin/jboss-cli.sh --commands="embed-server --std-out=echo,/subsystem=elytron/filesystem-realm=ApplicationRealm:add-identity(identity=<USERNAME>),/subsystem=elytron/filesystem-realm=ApplicationRealm:set-password(identity=<USERNAME>, clear={password='<PASSWORD>'}),/subsystem=elytron/filesystem-realm=ApplicationRealm:add-identity-attribute(identity=<USERNAME>, name=role, value=['rest-all'])"$ ./bin/jboss-cli.sh --commands="embed-server --std-out=echo,/subsystem=elytron/filesystem-realm=ApplicationRealm:add-identity(identity=<USERNAME>),/subsystem=elytron/filesystem-realm=ApplicationRealm:set-password(identity=<USERNAME>, clear={password='<PASSWORD>'}),/subsystem=elytron/filesystem-realm=ApplicationRealm:add-identity-attribute(identity=<USERNAME>, name=role, value=['rest-all'])"Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーロールと Red Hat Process Automation Manager のインストールオプションの詳細は、Red Hat Process Automation Manager インストールの計画 を参照してください。
- HTTP ヘッダー
ナレッジストア REST API は、API 要求に以下の HTTP ヘッダーを必要とします。
Accept: 要求元のクライアントが受け付けるデータ形式:-
application/json(JSON)
-
Content-Type:POSTまたはPUTAPI 要求データ向けのデータ形式:-
application/json(JSON)
-
- HTTP メソッド
ナレッジストア REST API は、API 要求に以下の HTTP メソッドを必要とします。
-
GET: 指定したリソースのエンドポイントから指定した情報を取得する -
POST: リソースを作成または更新する -
PUT: リソースを更新する -
DELETE: リソースを削除する
-
- ベース URL
ナレッジストア REST API リクエストのベース URL は
http://SERVER:PORT/business-central/rest/で、たとえばhttp://localhost:8080/business-central/rest/となります。注記ナレッジストアの REST API のベース URL と Business Central にビルトインの Process Automation Manager コントローラーのものは、両方とも Business Central REST サービスの一部とみなされるため同じになります。
- エンドポイント
特定のスペースにおける
/spaces/{spaceName}など、ナレッジストア REST API のエンドポイントは、ナレッジストア REST API ベース URL に追記する URI で、Red Hat Process Automation Manager の対応するリソースやリソースタイプにアクセスするためのものです。/spaces/{spaceName}エンドポイントの要求 URL 例http://localhost:8080/business-central/rest/spaces/MySpace- 要求データ
ナレッジストア REST API の HTTP
POST要求は、データに JSON 要求ボディが必要になる場合があります。POST 要求 URL と JSON 要求のボディデータの例
http://localhost:8080/business-central/rest/spaces/MySpace/projectsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
28.1. REST クライアントまたは curl ユーティリティーを使用したナレッジストア REST API による要求送信 リンクのコピーリンクがクリップボードにコピーされました!
ナレッジストア REST API を使用すると、Business Central ユーザーインターフェイスを使用せずに Red Hat Process Automation Manager のプロジェクトやスペースを操作することができます。ナレッジストア REST API 要求は、REST クライアントまたは curl ユーティリティーを使用して送信できます。
前提条件
- Business Central をインストールし、実行している。
-
rest-allユーザーロールで Business Central にアクセスできる。
手順
-
要求の送信先となる関連する API エンドポイント を特定します。Business Central からスペースを取得する
[GET] /spacesなどです。 REST クライアントまたは curl ユーティリティーで、
/spacesへのGET要求に以下のコンポーネントを入力します。ご自分のユースケースに合わせて、要求詳細を調整します。REST クライアントの場合:
-
Authentication:
rest-allロールを持つ Business Central ユーザーのユーザー名とパスワードを入力します。 HTTP Headers: 以下のヘッダーを設定します。
-
Accept:application/json
-
-
HTTP method:
GETに設定します。 -
URL: Process Server REST API ベース URL とエンドポイントを入力します。たとえば、
http://localhost:8080/business-central/rest/spacesとなります。
curl ユーティリティーの場合:
-
-u:rest-allロールを持つ Business Central ユーザーのユーザー名とパスワードを入力します。 -H: 以下のヘッダーを設定します。-
Accept:application/json
-
-
-X:GETに設定します。 -
URL: Process Server REST API ベース URL とエンドポイントを入力します。たとえば、
http://localhost:8080/business-central/rest/spacesとなります。
curl -u 'baAdmin:password@1' -H "Accept: application/json" -X GET "http://localhost:8080/business-central/rest/spaces"
curl -u 'baAdmin:password@1' -H "Accept: application/json" -X GET "http://localhost:8080/business-central/rest/spaces"Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Authentication:
要求を実行し、KIE Server の応答を確認します。
サーバー応答の例 (JSON):
Copy to Clipboard Copied! Toggle word wrap Toggle overflow REST クライアントまたは curl ユーティリティーで、
/spaces/{spaceName}/projectsへのPOST要求を以下のコンポーネントで送信し、スペース内でプロジェクトを作成します。ご自分のユースケースに合わせて、要求詳細を調整します。REST クライアントの場合:
-
Authentication:
rest-allロールを持つ Business Central ユーザーのユーザー名とパスワードを入力します。 HTTP Headers: 以下のヘッダーを設定します。
-
Accept:application/json -
Accept-Language:en-US -
Content-Type:application/json
-
-
HTTP method:
POSTに設定します。 -
URL: Process Server REST API ベース URL とエンドポイントを入力します。たとえば、
http://localhost:8080/business-central/rest/spaces/MySpace/projectsとなります。 - 要求のボディ: 新規プロジェクト用の ID データのある JSON 要求ボディを追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl ユーティリティーの場合:
-
-u:rest-allロールを持つ Business Central ユーザーのユーザー名とパスワードを入力します。 -H: 以下のヘッダーを設定します。-
Accept:application/json -
Accept-Language:en-US(定義されていない場合は JVM のデフォルトのロケールが反映されます) -
Content-Type:application/json
-
-
-X:POSTに設定します。 -
URL: Process Server REST API ベース URL とエンドポイントを入力します。たとえば、
http://localhost:8080/business-central/rest/spaces/MySpace/projectsとなります。 -
-d: 新規プロジェクト用の ID データのある JSON 要求のボディまたはファイル (@file.json) を追加します。
curl -u 'baAdmin:password@1' -H "Accept: application/json" -H "Accept-Language: en-US" -H "Content-Type: application/json" -X POST "http://localhost:8080/business-central/rest/spaces/MySpace/projects" -d "{ \"name\": \"Employee_Rostering\", \"groupId\": \"employeerostering\", \"version\": \"1.0.0-SNAPSHOT\", \"description\": \"Employee rostering problem optimisation using Planner. Assigns employees to shifts based on their skill.\"}"curl -u 'baAdmin:password@1' -H "Accept: application/json" -H "Accept-Language: en-US" -H "Content-Type: application/json" -X POST "http://localhost:8080/business-central/rest/spaces/MySpace/projects" -d "{ \"name\": \"Employee_Rostering\", \"groupId\": \"employeerostering\", \"version\": \"1.0.0-SNAPSHOT\", \"description\": \"Employee rostering problem optimisation using Planner. Assigns employees to shifts based on their skill.\"}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl -u 'baAdmin:password@1' -H "Accept: application/json" -H "Accept-Language: en-US" -H "Content-Type: application/json" -X POST "http://localhost:8080/business-central/rest/spaces/MySpace/projects" -d @my-project.json
curl -u 'baAdmin:password@1' -H "Accept: application/json" -H "Accept-Language: en-US" -H "Content-Type: application/json" -X POST "http://localhost:8080/business-central/rest/spaces/MySpace/projects" -d @my-project.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Authentication:
要求を実行し、KIE Server の応答を確認します。
サーバー応答の例 (JSON):
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要求エラーが発生した場合は、返されたエラーコードメッセージを確認して、それに応じて要求を調整します。