5.2. Swagger インターフェイスを使用した Decision Manager コントローラー REST API による要求送信

Decision Manager コントローラー REST API は Swagger web インターフェイスをサポートしています。スタンドアロンの REST クライアントや curl ユーティリティーの代わりにこれを使用すると、Business Central ユーザーインターフェイスを使用せずに KIE Server の テンプレートおよびインスタンス、ならびに関連する KIE コンテナーを Red Hat Decision Manager で操作することができます。

注記

デフォルトでは、org.kie.workbench.swagger.disabled=false システムプロパティーが指定されており、Decision Manager の Swagger Web インターフェイスが有効になっています。Decision Manager で Swagger Web インターフェイスを無効にするには、このシステムプロパティーを true に設定してください。

前提条件

  • Decision Manager コントローラーがインストール済みで実行されている。
  • Business Central をインストールしている場合は Decision Manager コントローラーにアクセスする rest-all ユーザーロールがある。もしくは、Business Central とは別にインストールされたヘッドレス Decision Manager コントローラーにアクセスする kie-server ユーザーロールがある。

手順

  1. Web ブラウザーで http://SERVER:PORT/CONTROLLER/docs に移動します (例: http://localhost:8080/decision-central/docs)。rest-all ロールのある Decision Manager コントローラーユーザーまたは kie-server ロールを持つヘッドレス Decision Manager コントローラーユーザーのユーザー名とパスワードでログインします。

    注記

    Business Central に組み込まれている Decision Manager コントローラーを使用している場合、Decision Manager コントローラーに関連付けられている Swagger ページは、Business Central REST サービスでは Business Central API として特定されます。Business Central なしでヘッドレス Decision Manager コントローラーを使用している場合、ヘッドレス Decision Manager コントローラーに関連付けられている Swagger ページは Controller API と特定されます。いずれの場合も、Decision Manager コントローラーの REST API エンドポイントは同じです。

  2. Swagger ページで、要求の送信先となる関連 API エンドポイントを選択します。たとえば、Controller :: KIE Server templates and KIE containers[GET] /controller/management/servers で KIE Server テンプレートを Decision Manager コントローラーから取得します。
  3. 該当する場合は Try it out をクリックして、結果のフィルターリングに使用する任意のパラメーターを提供します。
  4. Response content type ドロップダウンメニューで、サーバー応答のフォーマットを選択します (例: JSON フォーマットでは application/json)。
  5. Execute をクリックし、KIE Server の応答を確認します。

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

    {
      "server-template": [
        {
          "server-id": "default-kieserver",
          "server-name": "default-kieserver",
          "container-specs": [
            {
              "container-id": "employeerostering_1.0.0-SNAPSHOT",
              "container-name": "employeerostering",
              "server-template-key": {
                "server-id": "default-kieserver",
                "server-name": "default-kieserver"
              },
              "release-id": {
                "group-id": "employeerostering",
                "artifact-id": "employeerostering",
                "version": "1.0.0-SNAPSHOT"
              },
              "configuration": {
                "RULE": {
                  "org.kie.server.controller.api.model.spec.RuleConfig": {
                    "pollInterval": null,
                    "scannerStatus": "STOPPED"
                  }
                },
                "PROCESS": {
                  "org.kie.server.controller.api.model.spec.ProcessConfig": {
                    "runtimeStrategy": "SINGLETON",
                    "kbase": "",
                    "ksession": "",
                    "mergeMode": "MERGE_COLLECTIONS"
                  }
                }
              },
              "status": "STARTED"
            },
            {
              "container-id": "mortgage-process_1.0.0-SNAPSHOT",
              "container-name": "mortgage-process",
              "server-template-key": {
                "server-id": "default-kieserver",
                "server-name": "default-kieserver"
              },
              "release-id": {
                "group-id": "mortgage-process",
                "artifact-id": "mortgage-process",
                "version": "1.0.0-SNAPSHOT"
              },
              "configuration": {
                "RULE": {
                  "org.kie.server.controller.api.model.spec.RuleConfig": {
                    "pollInterval": null,
                    "scannerStatus": "STOPPED"
                  }
                },
                "PROCESS": {
                  "org.kie.server.controller.api.model.spec.ProcessConfig": {
                    "runtimeStrategy": "PER_PROCESS_INSTANCE",
                    "kbase": "",
                    "ksession": "",
                    "mergeMode": "MERGE_COLLECTIONS"
                  }
                }
              },
              "status": "STARTED"
            }
          ],
          "server-config": {},
          "server-instances": [
            {
              "server-instance-id": "default-kieserver-instance@localhost:8080",
              "server-name": "default-kieserver-instance@localhost:8080",
              "server-template-id": "default-kieserver",
              "server-url": "http://localhost:8080/kie-server/services/rest/server"
            }
          ],
          "capabilities": [
            "RULE",
            "PROCESS",
            "PLANNING"
          ]
        }
      ]
    }
  6. Swagger ページで Controller :: KIE Server templates and KIE containers[GET] /controller/management/servers/{serverTemplateId} エンドポイントに移動し、新たな KIE Server テンプレートを作成するための別の要求を送信します。ご自分のユースケースに合わせて、要求詳細を調整します。
  7. Try it out をクリックして、以下の要求のコンポーネントを入力します。

    • serverTemplateId: 新規 KIE Server テンプレートの ID を入力します (例: new-kieserver)。
    • body: Parameter content type を任意の要求のボディ形式 (JSON の場合は application/json など) に設定し、要求のボディに新規 KIE Server テンプレートの設定を追加します。
    {
      "server-id": "new-kieserver",
      "server-name": "new-kieserver",
      "container-specs": [],
      "server-config": {},
      "capabilities": [
        "RULE",
        "PROCESS",
        "PLANNING"
      ]
    }
  8. Response content type ドロップダウンメニューで、サーバー応答のフォーマットを選択します (例: JSON フォーマットでは application/json)。
  9. Execute をクリックし、Decision Manager コントローラーの応答が正常であることを確認します。

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