第12章 Decision Server 用 REST API


REST API を使用して Decision Server と通信することができます。

  • リクエストを送信するためのベース URL は、上で定義したエンドポイントです (例: http://SERVER:PORT/kie-server/services/rest/server/)。
  • すべてのリクエストには、kie-server ロールに対する HTTP 基本認証またはトークンベースの認証が必要です。

以下のメソッドでは、3 種類のリクエストフォーマット (JSON、JAXB、および XSTREAM) がサポートされます。以下の HTTP ヘッダーを指定する必要があります。

  • Accept: application/json または application/xml に設定します。

    Accept ヘッダーで複数の受け入れ可能コンテンツタイプを指定する場合は、優先修飾子 (HTML 1.1 規格 で定義される qvalue) を含める必要があります。これを含めないと、予期せぬ挙動を示す場合があります。複数の受け入れ可能コンテンツタイプを指定した、適切なヘッダーフォーマットの例を以下に示します。

    Accept: application/xml; q=0.5, application/json; q=0.9
  • X-KIE-ContentType: XSTREAM マーシャラーを使用する際に必要です。この場合、ヘッダーを XSTREAM に設定します。値に JSON および JAXB を指定することができますが、必須ではありません。Content-typeapplication/xml に設定すると、デフォルトでは値に JAXB が使用されます。
  • Content-type: application/json または application/xml に設定します。このヘッダーは、お使いのペイロードのフォーマットに対応します。
  • --data: お使いのペイロードです。ペイロードがファイルにある場合は、名前の始めに @ 記号を付けます。以下に例を示します。

    --data @commandsRequest.json

リクエストと応答が共に同じフォーマットになるように、アプリケーションのリクエストには必ず Content-Type HTTP ヘッダーと Accept HTTP ヘッダーの両方を指定します。指定しないと、サーバーからマーシャリングに関するエラーが送付されます。

例では Curl ユーティリティーが使われていますが、任意の REST クライアントを使用することができます。Curl コマンドには以下のパラメーターが使われます。

  • -u: Decision Server の認証に username:password を指定します。
  • -H: HTTP ヘッダーを指定します。
  • -X: リクエストの HTTP メソッドを指定します。メソッドは [GET]、[POST]、[PUT]、または [DELETE] のいずれかです。
注記

Red Hat Decision Manager コマンド は、Decision Server が Red Hat Decision Manager 機能を持つ場合に限り有効です。その他のエンドポイントは、Decision Server が Red Hat Business Automation 機能を持つ場合に限り有効です。http://SERVER:PORT/kie-server/services/rest/server の URI にアクセスして、お使いの Decision Server の機能を確認してください。

12.1. Red Hat Decision Manager コマンド

[POST] /containers/instances/CONTAINER_ID
リクエストのタイプ
単一の org.kie.api.command.Command コマンド、または BatchExecutionCommand ラッパーの複数コマンド。
応答のタイプ
org.kie.server.api.model.ServiceResponse<String>
説明
指定した CONTAINER_ID に送られたコマンドを実行し、コマンドの実行結果を返します。詳細は、以下に示すサポートされるコマンドを参照してください。

サポートされるコマンド一覧:

  • AgendaGroupSetFocusCommand
  • ClearActivationGroupCommand
  • ClearAgendaCommand
  • ClearAgendaGroupCommand
  • ClearRuleFlowGroupCommand
  • DeleteCommand
  • InsertObjectCommand
  • ModifyCommand
  • GetObjectCommand
  • InsertElementsCommand
  • FireAllRulesCommand
  • QueryCommand
  • SetGlobalCommand
  • GetGlobalCommand
  • GetObjectsCommand
  • BatchExecutionCommand
  • DisposeCommand

コマンドの詳細は、org.drools.core.command.runtime パッケージを参照してください。

[POST] Drools コマンドの実行

  1. 任意のディレクトリーに移動し、commandsRequest.json を作成します。

    {
          "lookup" : null,
          "commands" : [ {
            "insert" : {
              "object" : "testing",
              "disconnected" : false,
              "out-identifier" : null,
              "return-object" : true,
              "entry-point" : "DEFAULT"
            }
    
          }, {
            "fire-all-rules" : { }
          } ]
        }
  2. 以下のコマンドを実行します。

    $ curl -X POST -H 'X-KIE-ContentType: JSON' -H 'Content-type: application/json' -u 'kieserver:kieserver1!' --data @commandsRequest.json http://localhost:8080/kie-server/services/rest/server/containers/instances/myContainer

    このコマンドによりリクエストが生成され、このリクエストがサーバーに Insert Object および Fire All Rules コマンドを送信します。Lookup により kjar で設定される ksession が指定されます。lookup 値に null を指定した場合は、デフォルトの KIE セッションが使用されます。

応答の例:

    {
      "type" : "SUCCESS",
      "msg" : "Container hello successfully called.",
      "result" : "{\n  \"results\" : [ ],\n  \"facts\" : [ ]\n}"
    }
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る