第1章 KIE コンテナーおよびビジネスアセット用の KIE Server REST API


Red Hat Decision Manager は KIE Server REST API を提供し、これを使用することで Business Central ユーザーインターフェイスを使用せずに Red Hat Decision Manager の KIE コンテナーやビジネスアセット (ビジネスルール、プロセス、ソルバーなど) を操作できます。この API のサポートにより、Red Hat Decision Manager のリソースをより効率的に維持でき、Red Hat Decision Manager の統合と開発を最適化できるようになります。

KIE Server REST API を使用すると、以下のアクションが可能になります。

  • KIE コンテナーのデプロイまたは破棄
  • KIE コンテナー情報の取得および更新
  • KIE Server ステータスおよび基本的情報の確認
  • ビジネスアセット情報の取得および更新
  • ビジネスアセット (ルールやプロセスなど) の実行

KIE Server REST API 要求には以下のコンポーネントが必要です。

認証

KIE Server REST API は、ユーザーロール kie-server に HTTP の Basic 認証またはトークンベースの認証を必要とします。お使いの Red Hat Decision Manager に設定されているユーザーロールを表示するには、~/$SERVER_HOME/standalone/configuration/application-roles.properties~/application-users.properties に移動します。

ユーザーに kie-server ロールを追加するには、~/$SERVER_HOME/bin に移動して以下のコマンドを実行します。

$ ./add-user.sh -a --user <USERNAME> --password <PASSWORD> --role kie-server
Copy to Clipboard

ユーザーロールと Red Hat Decision Manager のインストールオプションの詳細は、Red Hat Decision Manager インストールの計画 を参照してください。

HTTP ヘッダー

KIE Server REST API は、API 要求に以下の HTTP ヘッダーを必要とします。

  • Accept: 要求元のクライアントが受け付けるデータ形式:

    • application/json (JSON)
    • application/xml (XML、JAXB または XSTREAM 用)
  • Content-Type: POST または PUT API 要求データ向けのデータ形式:

    • application/json (JSON)
    • application/xml (XML、JAXB または XSTREAM 用)
  • X-KIE-ContentType: application/xml XSTREAM API 要求および応答に必要なヘッダー:

    • XSTREAM
HTTP メソッド

KIE Server REST API は、API 要求に以下の HTTP メソッドを必要とします。

  • GET: 指定したリソースのエンドポイントから指定した情報を取得する
  • POST: リソースまたはリソースインスタンスを更新する
  • PUT: リソースまたはリソースインスタンスを更新もしくは作成する
  • DELETE: リソースまたはリソースインスタンスを削除する
ベース URL
KIE Server REST API 要求のベース URL は http://SERVER:PORT/kie-server/services/rest/ で、たとえば http://localhost:8080/kie-server/services/rest/ となります。
エンドポイント

特定の KIE コンテナーにおける /server/containers/{containerId} などの KIE Server REST API のエンドポイントは、KIE Server REST API ベース URL に追記する URI で、Red Hat Decision Manager の対応するリソースやリソースタイプにアクセスするためのものです。

/server/containers/{containerId} エンドポイントの要求 URL 例

http://localhost:8080/kie-server/services/rest/server/containers/MyContainer

要求パラメーターおよび要求データ

多くの KIE Server REST API 要求では、特定リソースの確認またはフィルターリングを行い、特定のアクションを実行するために、要求 URL パスで特定のパラメーターを必要とします。URL パラメーターは、?<PARAM>=<VALUE>&<PARAM>=<VALUE> の形式でエンドポイントに追記します。

GET 要求 URL のパラメーター例

http://localhost:8080/kie-server/services/rest/server/containers?groupId=com.redhat&artifactId=Project1&version=1.0&status=STARTED

HTTP POSTPUT の要求は、さらに要求のボディもしくはデータのあるファイルが必要になる場合があります。

POST 要求 URL と JSON 要求のボディデータの例

http://localhost:8080/kie-server/services/rest/server/containers/MyContainer/release-id

{
  "release-id": {
    "artifact-id": "Project1",
    "group-id": "com.redhat",
    "version": "1.1"
  }
}
Copy to Clipboard

1.1. REST クライアントまたは curl ユーティリティーを使用した KIE Server REST API による要求送信

KIE Server REST API を使用すると、Business Central のユーザーインターフェイスを使用せずに、Red Hat Decision Manager 内の KIE コンテナーとビジネスアセット (ビジネスルール、プロセス、ソルバーなど) と対話できます。KIE Server REST API 要求は、REST クライアントまたは curl ユーティリティーを使用して送信できます。

前提条件

  • KIE Server をインストールし、実行している。
  • kie-server ユーザーロールで KIE Server にアクセスできる。

手順

  1. [GET] /server/containers など、要求の送信先に適した API endpoint を特定し、KIE Server から KIE コンテナーを取得します。
  2. REST クライアントまたは curl ユーティリティーで、/server/containers への GET 要求に以下のコンポーネントを記入します。ご自分のユースケースに合わせて、要求詳細を調整します。

    REST クライアントの場合:

    • Authentication: kie-server ロールを持つ KIE Server ユーザーのユーザー名とパスワードを入力します。
    • HTTP Headers: 以下のヘッダーを設定します。

      • Accept: application/json
    • HTTP method: GET に設定します。
    • URL: KIE Server REST API ベース URL とエンドポイントを入力します。たとえば、http://localhost:8080/kie-server/services/rest/server/containers となります。

    curl ユーティリティーの場合:

    • -u: kie-server ロールを持つ KIE Server ユーザーのユーザー名とパスワードを入力します。
    • -H: 以下のヘッダーを設定します。

      • Accept: application/json
    • -X: GET に設定します。
    • URL: KIE Server REST API ベース URL とエンドポイントを入力します。たとえば、http://localhost:8080/kie-server/services/rest/server/containers となります。
    curl -u 'baAdmin:password@1' -H "Accept: application/json" -X GET "http://localhost:8080/kie-server/services/rest/server/containers"
    Copy to Clipboard
  3. 要求を実行し、KIE Server の応答を確認します。

    サーバー応答の例 (JSON):

    {
      "type": "SUCCESS",
      "msg": "List of created containers",
      "result": {
        "kie-containers": {
          "kie-container": [
            {
              "container-id": "itorders_1.0.0-SNAPSHOT",
              "release-id": {
                "group-id": "itorders",
                "artifact-id": "itorders",
                "version": "1.0.0-SNAPSHOT"
              },
              "resolved-release-id": {
                "group-id": "itorders",
                "artifact-id": "itorders",
                "version": "1.0.0-SNAPSHOT"
              },
              "status": "STARTED",
              "scanner": {
                "status": "DISPOSED",
                "poll-interval": null
              },
              "config-items": [],
              "container-alias": "itorders"
            }
          ]
        }
      }
    }
    Copy to Clipboard
  4. この例では、プロジェクトの group-idartifact-id、および version (GAV) のデータを応答で返されたデプロイ済み KIE コンテナーのいずれかからコピーするか、書き留めます。
  5. REST クライアントまたは curl ユーティリティーで、/server/containers/{containerId} への PUT 要求を以下のコンポーネントで送信し、コピーしたプロジェクトの GAV データで新規 KIE コンテナーをデプロイします。ご自分のユースケースに合わせて、要求詳細を調整します。

    REST クライアントの場合:

    • Authentication: kie-server ロールを持つ KIE Server ユーザーのユーザー名とパスワードを入力します。
    • HTTP Headers: 以下のヘッダーを設定します。

      • Accept: application/json
      • Content-Type: application/json

        注記

        fields=not_nullContent-Type に追加すると、null フィールドは REST API レスポンスから除外されます。

    • HTTP method: PUT に設定します。
    • URL: KIE Server REST API ベース URL とエンドポイントを入力します。たとえば、http://localhost:8080/kie-server/services/rest/server/containers/MyContainer となります。
    • 要求のボディ: 新規 KIE コンテナー用の設定アイテムのある JSON 要求のボディを追加します。
    {
      "config-items": [
        {
          "itemName": "RuntimeStrategy",
          "itemValue": "SINGLETON",
          "itemType": "java.lang.String"
        },
        {
          "itemName": "MergeMode",
          "itemValue": "MERGE_COLLECTIONS",
          "itemType": "java.lang.String"
        },
        {
          "itemName": "KBase",
          "itemValue": "",
          "itemType": "java.lang.String"
        },
        {
          "itemName": "KSession",
          "itemValue": "",
          "itemType": "java.lang.String"
        }
      ],
      "release-id": {
        "group-id": "itorders",
        "artifact-id": "itorders",
        "version": "1.0.0-SNAPSHOT"
      },
      "scanner": {
        "poll-interval": "5000",
        "status": "STARTED"
      }
    }
    Copy to Clipboard

    curl ユーティリティーの場合:

    • -u: kie-server ロールを持つ KIE Server ユーザーのユーザー名とパスワードを入力します。
    • -H: 以下のヘッダーを設定します。

      • Accept: application/json
      • Content-Type: application/json

        注記

        fields=not_nullContent-Type に追加すると、null フィールドは REST API レスポンスから除外されます。

    • -X: PUT に設定します。
    • URL: KIE Server REST API ベース URL とエンドポイントを入力します。たとえば、http://localhost:8080/kie-server/services/rest/server/containers/MyContainer となります。
    • -d: 新規 KIE コンテナー用の設定アイテムのある JSON 要求のボディまたはファイル (@file.json) を追加します。
    curl -u 'baAdmin:password@1' -H "Accept: application/json" -H "Content-Type: application/json" -X PUT "http://localhost:8080/kie-server/services/rest/server/containers/MyContainer" -d "{ \"config-items\": [ { \"itemName\": \"RuntimeStrategy\", \"itemValue\": \"SINGLETON\", \"itemType\": \"java.lang.String\" }, { \"itemName\": \"MergeMode\", \"itemValue\": \"MERGE_COLLECTIONS\", \"itemType\": \"java.lang.String\" }, { \"itemName\": \"KBase\", \"itemValue\": \"\", \"itemType\": \"java.lang.String\" }, { \"itemName\": \"KSession\", \"itemValue\": \"\", \"itemType\": \"java.lang.String\" } ], \"release-id\": { \"group-id\": \"itorders\", \"artifact-id\": \"itorders\", \"version\": \"1.0.0-SNAPSHOT\" }, \"scanner\": { \"poll-interval\": \"5000\", \"status\": \"STARTED\" }}"
    Copy to Clipboard
    curl -u 'baAdmin:password@1' -H "Accept: application/json" -H "Content-Type: application/json" -X PUT "http://localhost:8080/kie-server/services/rest/server/containers/MyContainer" -d @my-container-configs.json
    Copy to Clipboard
  6. 要求を実行し、KIE Server の応答を確認します。

    サーバー応答の例 (JSON):

    {
      "type": "SUCCESS",
      "msg": "Container MyContainer successfully deployed with module itorders:itorders:1.0.0-SNAPSHOT.",
      "result": {
        "kie-container": {
          "container-id": "MyContainer",
          "release-id": {
            "group-id": "itorders",
            "artifact-id": "itorders",
            "version": "1.0.0-SNAPSHOT"
          },
          "resolved-release-id": {
            "group-id": "itorders",
            "artifact-id": "itorders",
            "version": "1.0.0-SNAPSHOT"
          },
          "status": "STARTED",
          "scanner": {
            "status": "STARTED",
            "poll-interval": 5000
          },
          "config-items": [],
          "messages": [
            {
              "severity": "INFO",
              "timestamp": {
                "java.util.Date": 1540584717937
              },
              "content": [
                "Container MyContainer successfully created with module itorders:itorders:1.0.0-SNAPSHOT."
              ]
            }
          ],
          "container-alias": null
        }
      }
    }
    Copy to Clipboard

    要求エラーが発生した場合は、返されたエラーコードメッセージを確認して、それに応じて要求を調整します。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat