第7章 Business Central スペースおよびプロジェクト用のナレッジストア REST API

Red Hat Decision Manager はナレッジストア REST API を提供し、これを使用することで Business Central ユーザーインターフェースを使わずに Red Hat Decision Manager のプロジェクトやスペースを操作することができます。ナレッジストアは、Red Hat Decision Manager のアセット用のアーティファクトリポジトリーです。この API のサポートにより、Business Central プロジェクトとスペースの活用と、それらのメンテナンスの自動化が可能になります。

ナレッジストア REST API を使用すると、以下のアクションが可能になります。

  • 全プロジェクトおよびスペースに関する情報の取得
  • プロジェクトおよびスペースの作成、更新、削除
  • プロジェクトのビルド、デプロイおよびテスト
  • 以前の REST API 要求または jobs についての情報の取得

ナレッジストア REST API 要求には以下のコンポーネントが必要です。

認証

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

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

$ ./add-user.sh -a --user <USERNAME> --password <PASSWORD> --role rest-all

ユーザーロールと Red Hat Decision Manager のインストールオプションについての詳細は、『RED HAT DECISION MANAGER インストールのプラニング』を参照してください。

HTTP ヘッダー

ナレッジストア REST API は、API 要求に以下の HTTP ヘッダーを必要とします。

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

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

    • application/json (JSON)
HTTP メソッド

ナレッジストア REST API は、API 要求に以下の HTTP メソッドを必要とします。

  • GET: 指定したリソースのエンドポイントから指定した情報を取得する
  • POST: リソースを作成または更新します
  • DELETE: リソースを削除します
ベース URL

ナレッジストア REST API 要求のベース URL は http://SERVER:PORT/decision-central/rest/ で、たとえば http://localhost:8080/decision-central/rest/ となります。

注記

ナレッジストアの REST API のベース URL と Business Central に含まれる Decision Manager コントローラーのものは、両方とも Business Central REST サービスの一部とみなされるので、同じになります。

Endpoints (エンドポイント)

特定のスペースにおける /spaces/{spaceName} など、ナレッジストア REST API のエンドポイントは、ナレッジストア REST API ベース URL に追記する URI で、Red Hat Decision Manager の対応するリソースやリソースタイプにアクセスするためのものです。

/spaces/{spaceName} エンドポイントの要求 URL 例

http://localhost:8080/decision-central/rest/spaces/MySpace

要求データ

ナレッジストア REST API の HTTP POST 要求は、データに JSON 要求の本文が必要になる場合があります。

POST 要求 URL と JSON 要求の本文データの例

http://localhost:8080/decision-central/rest/spaces/MySpace/projects

{
  "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."
}

7.1. REST クライアントまたは curl ユーティリティーを使用した ナレッジストア REST API による要求送信

ナレッジストア REST API を使用すると、Business Central ユーザーインターフェースを使わずに Red Hat Decision Manager のプロジェクトやスペースを操作することができます。ナレッジストア REST API 要求は、REST クライアントまたは curl ユーティリティーを使って送信できます。

前提条件

  • Business Central をインストールし、実行している。
  • rest-all ユーザーロールで Process Server にアクセスできる。

手順

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

    REST クライアントの場合:

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

      • Accept: application/json
    • HTTP method: GET に設定します。
    • URL: ナレッジストア REST API ベース URL とエンドポイントを入力します。たとえば、http://localhost:8080/decision-central/rest/spaces となります。

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

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

      • accept: application/json
    • -X: GET に設定します。
    • URL: ナレッジストア REST API ベース URL とエンドポイントを入力します。たとえば、http://localhost:8080/decision-central/rest/spaces となります。
    curl -u 'baAdmin:password@1' -H "accept: application/json" -X GET "http://localhost:8080/decision-central/rest/spaces"
  3. 要求を実行し、Decision Server の応答を確認します。

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

    [
      {
        "name": "MySpace",
        "description": null,
        "projects": [
          {
            "name": "Employee_Rostering",
            "spaceName": "MySpace",
            "groupId": "employeerostering",
            "version": "1.0.0-SNAPSHOT",
            "description": "Employee rostering problem optimisation using Planner. Assigns employees to shifts based on their skill.",
            "publicURIs": [
              {
                "protocol": "git",
                "uri": "git://localhost:9418/MySpace/example-Employee_Rostering"
              },
              {
                "protocol": "ssh",
                "uri": "ssh://localhost:8001/MySpace/example-Employee_Rostering"
              }
            ]
          },
          {
            "name": "Mortgage_Process",
            "spaceName": "MySpace",
            "groupId": "mortgage-process",
            "version": "1.0.0-SNAPSHOT",
            "description": "Getting started loan approval process in BPMN2, decision table, business rules, and forms.",
            "publicURIs": [
              {
                "protocol": "git",
                "uri": "git://localhost:9418/MySpace/example-Mortgage_Process"
              },
              {
                "protocol": "ssh",
                "uri": "ssh://localhost:8001/MySpace/example-Mortgage_Process"
              }
            ]
          }
        ],
        "owner": "admin",
        "defaultGroupId": "com.myspace"
      },
      {
        "name": "MySpace2",
        "description": null,
        "projects": [
          {
            "name": "IT_Orders",
            "spaceName": "MySpace",
            "groupId": "itorders",
            "version": "1.0.0-SNAPSHOT",
            "description": "Case Management IT Orders project",
            "publicURIs": [
              {
                "protocol": "git",
                "uri": "git://localhost:9418/MySpace/example-IT_Orders-1"
              },
              {
                "protocol": "ssh",
                "uri": "ssh://localhost:8001/MySpace/example-IT_Orders-1"
              }
            ]
          }
        ],
        "owner": "admin",
        "defaultGroupId": "com.myspace"
      }
    ]
  4. REST クライアントまたは curl ユーティリティーで、/spaces/{spaceName}/projects への POST 要求を以下のコンポーネントで送信し、スペース内でプロジェクトを作成します。ご自分のユースケースに合わせて、要求詳細を調整します。

    REST クライアントの場合:

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

      • Accept: application/json
      • Content-Type: application/json
    • HTTP method: POST に設定します。
    • URL: ナレッジストア REST API ベース URL とエンドポイントを入力します。たとえば、http://localhost:8080/decision-central/rest/spaces/MySpace/projects となります。
    • 要求の本文: 新規プロジェクト用の ID データのある JSON 要求の本文を追加します。
    {
      "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: rest-all ロールを持つ Business Central ユーザーのユーザー名とパスワードを入力します。
    • -H: 以下のヘッダーを設定します。

      • accept: application/json
      • content-type: application/json
    • -X: POST に設定します。
    • URL: ナレッジストア REST API ベース URL とエンドポイントを入力します。たとえば、http://localhost:8080/decision-central/rest/spaces/MySpace/projects となります。
    • -d: 新規プロジェクト用の ID データのある JSON 要求の本文またはファイル (@file.json) を追加します。
    curl -u 'baAdmin:password@1' -H "accept: application/json" -H "content-type: application/json" -X POST "http://localhost:8080/decision-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 "content-type: application/json" -X POST "http://localhost:8080/decision-central/rest/spaces/MySpace/projects" -d @my-project.json
  5. 要求を実行し、Decision Server の応答を確認します。

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

    {
      "jobId": "1541017411591-6",
      "status": "APPROVED",
      "spaceName": "MySpace",
      "projectName": "Employee_Rostering",
      "projectGroupId": "employeerostering",
      "projectVersion": "1.0.0-SNAPSHOT",
      "description": "Employee rostering problem optimisation using Planner. Assigns employees to shifts based on their skill."
    }

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

7.2. サポートされるナレッジストア REST API エンドポイント

ナレッジストア REST API は、Red Hat Decision Manager 内のスペースおよびプロジェクトを管理し、以前の内 REST API リクエストまたは jobs についての情報を取得するエンドポイントを提供します。

7.2.1. スペース

ナレッジストア REST API は Business Central のスペースを管理するための以下のエンドポイントをサポートします。ナレッジストア REST API のベース URL は http://SERVER:PORT/decision-central/rest/ です。ユーザーロール rest-all では、すべての要求で HTTP Basic 認証またはトークンベースの認証が必要です。

[GET] /spaces

Business Central のすべてのスペースを返します。

サーバーの応答例 (JSON)

[
  {
    "name": "MySpace",
    "description": null,
    "projects": [
      {
        "name": "Employee_Rostering",
        "spaceName": "MySpace",
        "groupId": "employeerostering",
        "version": "1.0.0-SNAPSHOT",
        "description": "Employee rostering problem optimisation using Planner. Assigns employees to shifts based on their skill.",
        "publicURIs": [
          {
            "protocol": "git",
            "uri": "git://localhost:9418/MySpace/example-Employee_Rostering"
          },
          {
            "protocol": "ssh",
            "uri": "ssh://localhost:8001/MySpace/example-Employee_Rostering"
          }
        ]
      },
      {
        "name": "Mortgage_Process",
        "spaceName": "MySpace",
        "groupId": "mortgage-process",
        "version": "1.0.0-SNAPSHOT",
        "description": "Getting started loan approval process in BPMN2, decision table, business rules, and forms.",
        "publicURIs": [
          {
            "protocol": "git",
            "uri": "git://localhost:9418/MySpace/example-Mortgage_Process"
          },
          {
            "protocol": "ssh",
            "uri": "ssh://localhost:8001/MySpace/example-Mortgage_Process"
          }
        ]
      }
    ],
    "owner": "admin",
    "defaultGroupId": "com.myspace"
  },
  {
    "name": "MySpace2",
    "description": null,
    "projects": [
      {
        "name": "IT_Orders",
        "spaceName": "MySpace",
        "groupId": "itorders",
        "version": "1.0.0-SNAPSHOT",
        "description": "Case Management IT Orders project",
        "publicURIs": [
          {
            "protocol": "git",
            "uri": "git://localhost:9418/MySpace/example-IT_Orders-1"
          },
          {
            "protocol": "ssh",
            "uri": "ssh://localhost:8001/MySpace/example-IT_Orders-1"
          }
        ]
      }
    ],
    "owner": "admin",
    "defaultGroupId": "com.myspace"
  }
]

[GET] /spaces/{spaceName}

指定したスペースに関する情報を返します。

表7.1 リクエストパラメーター

名前説明タイプ要件

spaceName

取得するスペースの名前

文字列

必須

サーバーの応答例 (JSON)

{
  "name": "MySpace",
  "description": null,
  "projects": [
    {
      "name": "Mortgage_Process",
      "spaceName": "MySpace",
      "groupId": "mortgage-process",
      "version": "1.0.0-SNAPSHOT",
      "description": "Getting started loan approval process in BPMN2, decision table, business rules, and forms.",
      "publicURIs": [
        {
          "protocol": "git",
          "uri": "git://localhost:9418/MySpace/example-Mortgage_Process"
        },
        {
          "protocol": "ssh",
          "uri": "ssh://localhost:8001/MySpace/example-Mortgage_Process"
        }
      ]
    },
    {
      "name": "Employee_Rostering",
      "spaceName": "MySpace",
      "groupId": "employeerostering",
      "version": "1.0.0-SNAPSHOT",
      "description": "Employee rostering problem optimisation using Planner. Assigns employees to shifts based on their skill.",
      "publicURIs": [
        {
          "protocol": "git",
          "uri": "git://localhost:9418/MySpace/example-Employee_Rostering"
        },
        {
          "protocol": "ssh",
          "uri": "ssh://localhost:8001/MySpace/example-Employee_Rostering"
        }
      ]
    },
    {
      "name": "Evaluation_Process",
      "spaceName": "MySpace",
      "groupId": "evaluation",
      "version": "1.0.0-SNAPSHOT",
      "description": "Getting started Business Process for evaluating employees",
      "publicURIs": [
        {
          "protocol": "git",
          "uri": "git://localhost:9418/MySpace/example-Evaluation_Process"
        },
        {
          "protocol": "ssh",
          "uri": "ssh://localhost:8001/MySpace/example-Evaluation_Process"
        }
      ]
    },
    {
      "name": "IT_Orders",
      "spaceName": "MySpace",
      "groupId": "itorders",
      "version": "1.0.0-SNAPSHOT",
      "description": "Case Management IT Orders project",
      "publicURIs": [
        {
          "protocol": "git",
          "uri": "git://localhost:9418/MySpace/example-IT_Orders"
        },
        {
          "protocol": "ssh",
          "uri": "ssh://localhost:8001/MySpace/example-IT_Orders"
        }
      ]
    }
  ],
  "owner": "admin",
  "defaultGroupId": "com.myspace"
}

[POST] /spaces

Business Central でスペースを作成します。

表7.2 リクエストパラメーター

名前説明タイプ要件

body

新規スペースの namedescriptionownerdefaultGroupId、およびその他のコンポーネント。

要求の本文

必須

リクエストボディ (JSON) 例

{
  "name": "NewSpace",
  "description": "My new space.",
  "owner": "admin",
  "defaultGroupId": "com.newspace"
}

サーバーの応答例 (JSON)

{
  "jobId": "1541016978154-3",
  "status": "APPROVED",
  "spaceName": "NewSpace",
  "owner": "admin",
  "defaultGroupId": "com.newspace",
  "description": "My new space."
}

[DELETE] /spaces/{spaceName}

Business Central からスペースを削除します。

表7.3 リクエストパラメーター

名前説明タイプ要件

spaceName

削除するスペースの名前

文字列

必須

サーバーの応答例 (JSON)

{
  "jobId": "1541127032997-8",
  "status": "APPROVED",
  "spaceName": "MySpace",
  "owner": "admin",
  "description": "My deleted space.",
  "repositories": null
}

7.2.2. プロジェクト

ナレッジストア REST API は Business Central のプロジェクトを管理、ビルド、デプロイメントするための以下のエンドポイントをサポートします。ナレッジストア REST API のベース URL は http://SERVER:PORT/decision-central/rest/ です。ユーザーロール rest-all では、すべての要求で HTTP Basic 認証またはトークンベースの認証が必要です。

[GET] /spaces/{spaceName}/projects

指定したスペースにあるプロジェクトを返します。

表7.4 リクエストパラメーター

名前説明タイプ要件

spaceName

取得するプロジェクトのスペース名

文字列

必須

サーバーの応答例 (JSON)

[
  {
    "name": "Mortgage_Process",
    "spaceName": "MySpace",
    "groupId": "mortgage-process",
    "version": "1.0.0-SNAPSHOT",
    "description": "Getting started loan approval process in BPMN2, decision table, business rules, and forms.",
    "publicURIs": [
      {
        "protocol": "git",
        "uri": "git://localhost:9418/MySpace/example-Mortgage_Process"
      },
      {
        "protocol": "ssh",
        "uri": "ssh://localhost:8001/MySpace/example-Mortgage_Process"
      }
    ]
  },
  {
    "name": "Employee_Rostering",
    "spaceName": "MySpace",
    "groupId": "employeerostering",
    "version": "1.0.0-SNAPSHOT",
    "description": "Employee rostering problem optimisation using Planner. Assigns employees to shifts based on their skill.",
    "publicURIs": [
      {
        "protocol": "git",
        "uri": "git://localhost:9418/MySpace/example-Employee_Rostering"
      },
      {
        "protocol": "ssh",
        "uri": "ssh://localhost:8001/MySpace/example-Employee_Rostering"
      }
    ]
  },
  {
    "name": "Evaluation_Process",
    "spaceName": "MySpace",
    "groupId": "evaluation",
    "version": "1.0.0-SNAPSHOT",
    "description": "Getting started Business Process for evaluating employees",
    "publicURIs": [
      {
        "protocol": "git",
        "uri": "git://localhost:9418/MySpace/example-Evaluation_Process"
      },
      {
        "protocol": "ssh",
        "uri": "ssh://localhost:8001/MySpace/example-Evaluation_Process"
      }
    ]
  },
  {
    "name": "IT_Orders",
    "spaceName": "MySpace",
    "groupId": "itorders",
    "version": "1.0.0-SNAPSHOT",
    "description": "Case Management IT Orders project",
    "publicURIs": [
      {
        "protocol": "git",
        "uri": "git://localhost:9418/MySpace/example-IT_Orders"
      },
      {
        "protocol": "ssh",
        "uri": "ssh://localhost:8001/MySpace/example-IT_Orders"
      }
    ]
  }
]

[GET] /spaces/{spaceName}/projects/{projectName}

指定したスペースにある指定したプロジェクト関する情報を返します。

表7.5 リクエストパラメーター

名前説明タイプ要件

spaceName

プロジェクトのあるスペースの名前

文字列

必須

projectName

取得するプロジェクトの名前

文字列

必須

サーバーの応答例 (JSON)

{
  "name": "Employee_Rostering",
  "spaceName": "MySpace",
  "groupId": "employeerostering",
  "version": "1.0.0-SNAPSHOT",
  "description": "Employee rostering problem optimisation using Planner. Assigns employees to shifts based on their skill.",
  "publicURIs": [
    {
      "protocol": "git",
      "uri": "git://localhost:9418/MySpace/example-Employee_Rostering"
    },
    {
      "protocol": "ssh",
      "uri": "ssh://localhost:8001/MySpace/example-Employee_Rostering"
    }
  ]
}

[POST] /spaces/{spaceName}/projects

指定したスペースにプロジェクトを作成します。

表7.6 リクエストパラメーター

名前説明タイプ要件

spaceName

新規プロジェクトが作成されるスペース名

文字列

必須

body

新規プロジェクトの namegroupIdversiondescription、およびその他のコンポーネント。

要求の本文

必須

リクエストボディ (JSON) 例

{
  "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."
}

サーバーの応答例 (JSON)

{
  "jobId": "1541017411591-6",
  "status": "APPROVED",
  "spaceName": "MySpace",
  "projectName": "Employee_Rostering",
  "projectGroupId": "employeerostering",
  "projectVersion": "1.0.0-SNAPSHOT",
  "description": "Employee rostering problem optimisation using Planner. Assigns employees to shifts based on their skill."
}

[DELETE] /spaces/{spaceName}/projects/{projectName}

指定したスペースから指定したプロジェクトを削除します。

表7.7 リクエストパラメーター

名前説明タイプ要件

spaceName

プロジェクトのあるスペースの名前

文字列

必須

projectName

削除するプロジェクトの名前

文字列

必須

サーバーの応答例 (JSON)

{
  "jobId": "1541128617727-10",
  "status": "APPROVED",
  "projectName": "Employee_Rostering",
  "spaceName": "MySpace"
}

[POST] /spaces/{spaceName}/git/clone

指定した Git アドレスから指定したスペースにプロジェクトのクローンを作成します。

表7.8 リクエストパラメーター

名前説明タイプ要件

spaceName

プロジェクトのクローンを作成するスペース名

文字列

必須

body

クローンするプロジェクトの namedescription、Git リポジトリーの userNamepassword、および gitURL

要求の本文

必須

リクエストボディ (JSON) 例

{
  "name": "Employee_Rostering",
  "description": "Employee rostering problem optimisation using Planner. Assigns employees to shifts based on their skill.",
  "userName": "baAdmin",
  "password": "password@1",
  "gitURL": "git://localhost:9418/MySpace/example-Employee_Rostering"
}

サーバーの応答例 (JSON)

{
  "jobId": "1541129488547-13",
  "status": "APPROVED",
  "cloneProjectRequest": {
    "name": "Employee_Rostering",
    "description": "Employee rostering problem optimisation using Planner. Assigns employees to shifts based on their skill.",
    "userName": "baAdmin",
    "password": "password@1",
    "gitURL": "git://localhost:9418/MySpace/example-Employee_Rostering"
  },
  "spaceName": "MySpace2"
}

[POST] /spaces/{spaceName}/projects/{projectName}/maven/compile

指定したスペースで指定したプロジェクトをコンパイルします (mvn compile と同等)。

表7.9 リクエストパラメーター

名前説明タイプ要件

spaceName

プロジェクトのあるスペースの名前

文字列

必須

projectName

コンパイルするプロジェクトの名前

文字列

必須

サーバーの応答例 (JSON)

{
  "jobId": "1541128617727-10",
  "status": "APPROVED",
  "projectName": "Employee_Rostering",
  "spaceName": "MySpace"
}

[POST] /spaces/{spaceName}/projects/{projectName}/maven/test

指定したスペースで指定したプロジェクトをテストします (mvn test と同等)。

表7.10 リクエストパラメーター

名前説明タイプ要件

spaceName

プロジェクトのあるスペースの名前

文字列

必須

projectName

テストするプロジェクトの名前

文字列

必須

サーバーの応答例 (JSON)

{
  "jobId": "1541132591595-19",
  "status": "APPROVED",
  "projectName": "Employee_Rostering",
  "spaceName": "MySpace"
}

[POST] /spaces/{spaceName}/projects/{projectName}/maven/install

指定したスペースで指定したプロジェクトをインストールします (mvn install と同等)。

表7.11 リクエストパラメーター

名前説明タイプ要件

spaceName

プロジェクトのあるスペースの名前

文字列

必須

projectName

インストールするプロジェクトの名前

文字列

必須

サーバーの応答例 (JSON)

{
  "jobId": "1541132668987-20",
  "status": "APPROVED",
  "projectName": "Employee_Rostering",
  "spaceName": "MySpace"
}

[POST] /spaces/{spaceName}/projects/{projectName}/maven/deploy

指定したスペースで指定したプロジェクトをデプロイします (mvn deploy と同等)。

表7.12 リクエストパラメーター

名前説明タイプ要件

spaceName

プロジェクトのあるスペースの名前

文字列

必須

projectName

デプロイするプロジェクトの名前

文字列

必須

サーバーの応答例 (JSON)

{
  "jobId": "1541132816435-21",
  "status": "APPROVED",
  "projectName": "Employee_Rostering",
  "spaceName": "MySpace"
}

7.2.3. ジョブ (API リクエスト)

ナレッジストア REST API の POSTDELETE リクエストはすべて、返されるリクエスト詳細のほかに、各リクエストに関連付けられたジョブ ID を返します。ジョブ ID を使用すると、リクエストステータスを確認したり、送信されたリクエストを削除したりできます。

ナレッジストア REST API リクエストもしくは ジョブ には、以下のステータスがあります。

表7.13 ジョブステータス (API リクエストステータス)

ステータス説明

ACCEPTED

リクエストが受け入れられ、処理中である。

BAD_REQUEST

リクエストに無効なコンテンツが含まれ、受け入れられなかった。

RESOURCE_NOT_EXIST

要求されたリソース (パス) が存在しない。

DUPLICATE_RESOURCE

リソースがすでに存在する。

SERVER_ERROR

Decision Server でエラーが発生した。

SUCCESS

リクエストが正常に完了した。

FAIL

リクエストが失敗した。

APPROVED

リクエストが承認された。

DENIED

リクエストが拒否された。

GONE

以下のいずれかの理由でリクエストのジョブ ID が見つからなかった。

  • リクエストが明示的に削除された。
  • リクエストが完了してステータスキャッシュから削除されている。キャッシュが最大容量に達すると、リクエストはステータスキャッシュから削除されます。
  • リクエストが元々存在しなかった。

ナレッジストア REST API は、送信済み API リクエストの取得または削除用の以下のエンドポイントをサポートします。ナレッジストア REST API のベース URL は http://SERVER:PORT/decision-central/rest/ です。ユーザーロール rest-all では、すべてのリクエストで HTTP 基本認証またはトークンベースの認証が必要です。

[GET] /jobs/{jobId}

指定されたジョブのステータスを返します (以前に送信された API リクエスト)。

表7.14 リクエストパラメーター

名前説明タイプ要件

jobId

取得するジョブの ID (例: 1541010216919-1)

文字列

必須

サーバーの応答例 (JSON)

{
  "status": "SUCCESS",
  "jobId": "1541010216919-1",
  "result": null,
  "lastModified": 1541010218352,
  "detailedResult": [
    "level:INFO, path:null, text:Build of module 'Mortgage_Process' (requested by system) completed.\n Build: SUCCESSFUL"
  ]
}

[DELETE] /jobs/{jobId}

指定したジョブ (以前に送信された API リクエスト) を削除します。ジョブがまだ処理されていない場合は、このリクエストはジョブをジョブキューから削除します。実行中のジョブがキャンセルされたり停止されたりすることはありません。

表7.15 リクエストパラメーター

名前説明タイプ要件

jobId

削除するジョブの ID (例: 1541010216919-1)

文字列

必須

サーバーの応答例 (JSON)

{
  "status": "GONE",
  "jobId": "1541010216919-1",
  "result": null,
  "lastModified": 1541132054916,
  "detailedResult": [
    "level:INFO, path:null, text:Build of module 'Mortgage_Process' (requested by system) completed.\n Build: SUCCESSFUL"
  ]
}