21.2. Swagger インターフェイスを使用した KIE Server REST API による要求送信
KIE Server REST API は Swagger Web インターフェイスをサポートします。スタンドアロンの REST クライアントや curl ユーティリティーの代わりのこれを使用すると、Business Central ユーザーインターフェイスを使わずに Red Hat Process Automation Manager の KIE コンテナーやビジネスアセット (ビジネスルールやプロセス、ソルバーなど) を操作することができます。
デフォルトでは、org.kie.swagger.server.ext.disabled=false
システムプロパティーが指定されており、KIE Server の Swagger Web インターフェイスが有効になっています。KIE Server で Swagger Web インターフェイスを無効にするには、このシステムプロパティーを true
に設定してください。
前提条件
- KIE Server をインストールし、実行している。
-
kie-server
ユーザーロールで KIE Server にアクセスできる。
手順
-
Web ブラウザーで
http://SERVER:PORT/kie-server/docs
を開きます。たとえば、http://localhost:8080/kie-server/docs
となります。kie-server
ロールを持つ KIE Server ユーザーのユーザー名とパスワードでログインします。 -
Swagger ページで、要求の送信先となる関連 API エンドポイントを選択します。たとえば、KIE Server and KIE containers
[GET] /server/containers で KIE コンテナーを KIE Server から取得します。 - Try it out をクリックして、結果のフィルターリングに使用する任意のパラメーターを提供します。
- Response content type ドロップダウンメニューで、サーバー応答のフォーマットを選択します (例: JSON フォーマットでは application/json)。
Execute をクリックし、KIE Server の応答を確認します。
サーバー応答の例 (JSON):
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
この例では、プロジェクトの
group-id
、artifact-id
、およびversion
(GAV) のデータを応答で返されたデプロイ済み KIE コンテナーのいずれかからコピーするか、書き留めます。 -
Swagger ページで KIE Server and KIE containers
[PUT] /server/containers/{containerId} エンドポイントに移動し、コピーしたプロジェクト GAV データで新規 KIE コンテナーをデプロイするための別の要求を送信します。ご自分のユースケースに合わせて、要求詳細を調整します。 Try it out をクリックして、以下の要求のコンポーネントを入力します。
-
containerId: 新規 KIE コンテナーの ID を入力します (例:
MyContainer
)。 - body: Parameter content type を希望の要求のボディ形式 (JSON の場合は application/json など) に設定し、要求のボディに新規 KIE コンテナーの設定アイテムを追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
containerId: 新規 KIE コンテナーの ID を入力します (例:
- Response content type ドロップダウンメニューで、サーバー応答のフォーマットを選択します (例: JSON フォーマットでは application/json)。
Execute をクリックし、KIE Server の応答を確認します。
サーバー応答の例 (JSON):
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要求エラーが発生した場合は、返されたエラーコードメッセージを確認して、それに応じて要求を調整します。
プロセスインスタンスの REST API 要求複雑なデータオブジェクトをプロセスインスタンスのエンドポイント (
/server/containers/{containerId}/processes/{processId}/instances
) に送信する REST API 要求の場合は、要求ボディーに、完全修飾クラス名 (com.myspace.Person
など) または単純なクラス名 (Person
など) を含めるようにしてください。Red Hat Process Automation Manager で、正しいビジネスオブジェクトに要求ボディーをマッピングするには、クラス名が必要です。要求からクラス名を除外すると、KIE Server では、想定するタイプにオブジェクトがアンマーシャルされません。プロセスインスタンスの要求ボディー (正)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロセスインスタンスの要求ボディー (誤)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow