第11章 ナレッジストア REST API


ナレッジストア REST API に対する REST API コールにより、組織単位、リポジトリー、およびプロジェクトを管理することができます。

すべての POST および DELETE コールは、リクエストの詳細およびジョブ ID を返します。この ID を使用して、ジョブのステータスを要求してジョブが正常に完了したかどうかを確認できます。GET コールは、リポジトリー、プロジェクト、および組織単位に関する情報を返します。

これらのコールのパラメーターおよび結果は、JSON エンティティーの形式で提供されます。さまざまなエンティティーの Java クラスが org.guvnor.rest.client パッケージから利用可能です。詳細については、以降のセクションで説明します。

11.1. ジョブコール

ほとんどのナレッジストア REST コールは、発行後にジョブ ID を返します。コールは同期されていないため、後でジョブを参照してライフサイクルの進行に応じてそのステータスを確認する際に、この ID が必要になります。

ライフサイクルの進行に応じて、ジョブは以下のステータスをとります。

Expand
表11.1 ジョブのステータス
ステータス説明

ACCEPTED

ジョブが受け入れられ、処理中である。

BAD_REQUEST

無効な内容が含まれるため、リクエストが受け入れられなかった。

RESOURCE_NOT_EXIST

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

DUPLICATE_RESOURCE

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

SERVER_ERROR

サーバー側のエラーが発生した。

SUCCESS

ジョブが正常に完了した。

FAIL

ジョブが失敗した。

APPROVED

ジョブが承認された。

DENIED

ジョブが許否された。

GONE

ジョブ ID が見つからなかった。以下の場合にジョブのステータスが GONE となります。

  • ジョブが意図的に削除された。
  • ジョブが完了してステータスキャッシュから削除されている。キャッシュが最大容量に達すると、ジョブはステータスキャッシュから削除されます。
  • ジョブが存在しなかった。

以下のジョブコールを利用することができます。

[GET] /jobs/JOB_ID

指定した JOB_ID のステータスを返します。

例11.1 リポジトリーのクローン作成を要求する GET ジョブコールに対するフォーマット済み応答

{
  "status" : "SUCCESS",
  "jobId" : "1377770574783-27",
  "result" : "Alias: testInstallAndDeployProject, Scheme: git, Uri: git://testInstallAndDeployProject",
  "lastModified" : 1377770578194,
  "detailedResult" : null
}
Copy to Clipboard Toggle word wrap
[DELETE] /jobs/JOB_ID
指定した JOB_ID のジョブを削除します。ジョブがまだ処理中でなければ、コールによりジョブキューからジョブが削除されます。ただし、このコールでは、処理中のジョブはキャンセルまたは停止されません。

これらのジョブコールは、共に JobResult インスタンスを返します。

11.2. 組織単位コール

ナレッジストアに対する組織単位コールにより、部署や部門をモデル化する際に役立つ組織単位を管理することができます。組織単位は複数のリポジトリーを持つことができます。

以下の組織単位コールを利用することができます。

[GET] /organizationalunits/

すべての組織単位の一覧を返します。

例11.2 JSON 形式の組織単位一覧

[ {
  "name" : "EmployeeWage",
  "description" : null,
  "owner" : "Employee",
  "defaultGroupId" : "org.bpms",
  "repositories" : [ "EmployeeRepo", "OtherRepo" ]
}, {
  "name" : "OrgUnitName",
  "description" : null,
  "owner" : "OrgUnitOwner",
  "defaultGroupId" : "org.group.id",
  "repositories" : [ "repository-name-1", "repository-name-2" ]
} ]
Copy to Clipboard Toggle word wrap
[GET] /organizationalunits/ORGANIZATIONAL_UNIT_NAME
特定の組織単位に関する情報を返します。
[POST] /organizationalunits/

ナレッジストアに組織単位を作成します。組織単位は JSON エンティティーとして定義されます。コールには OrganizationalUnit インスタンスが必要で、CreateOrganizationalUnitRequest インスタンスを返します。

例11.3 JSON 形式の組織単位

{
  "name" : "testgroup",
  "description" : "",
  "owner" : "tester",
  "repositories" : ["testGroupRepository"]
}
Copy to Clipboard Toggle word wrap
[POST] /organizationalunits/ORGANIZATIONAL_UNIT_NAME

既存組織単位の詳細を更新します。

要求した UpdateOrganizationalUnit インスタンスの name および owner フィールドは、共に空欄のままにすることができます。この操作により、description フィールドやリポジトリーの関連性を更新することはできません。

例11.4 JSON 形式の組織単位更新用インプット

{
  "owner" : "NewOwner",
  "defaultGroupId" : "org.new.default.group.id"
}
Copy to Clipboard Toggle word wrap
[DELETE] /organizationalunits/ORGANIZATIONAL_UNIT_NAME
指定した組織単位を削除します。
[POST] /organizationalunits/ORGANIZATIONAL_UNIT_NAME/repositories/REPOSITORY_NAME
組織単位にリポジトリーを追加します。
[DELETE] /organizationalunits/ORGANIZATIONAL_UNIT_NAME/repositories/REPOSITORY_NAME
組織単位からリポジトリーを削除します。

11.3. リポジトリーコール

ナレッジストアに対するリポジトリーコールにより、Git リポジトリーおよびそのプロジェクトを管理することができます。

以下のリポジトリーコールを利用することができます。

[GET] /repositories

ナレッジストア内のリポジトリー一覧を返します。

例11.5 リポジトリーコールの応答

[
  {
    "name": "bpms-assets",
    "description": "generic assets",
    "userName": null,
    "password": null,
    "requestType": null,
    "gitURL": "git://brms-assets"
  },
  {
    "name": "loanProject",
    "description": "Loan processes and rules",
    "userName": null,
    "password": null,
    "requestType": null,
    "gitURL": "git://loansProject"
  }
]
Copy to Clipboard Toggle word wrap
[GET] /repositories/REPOSITORY_NAME
特定のリポジトリーに関する情報を返します。
[DELETE] /repositories/REPOSITORY_NAME
リポジトリーを削除します。
[POST] /repositories/

JSON エンティティーで定義したリポジトリーを作成、またはリポジトリーのクローンを作成します。

例11.6 クローンを作成するリポジトリーの詳細を定義した JSON エンティティー

{
  "name": "myClonedRepository",
  "organizationalUnitName": "example",
  "description": "",
  "userName": "",
  "password": "",
  "requestType": "clone",
  "gitURL": "git://localhost/example-repository"
}
Copy to Clipboard Toggle word wrap

例11.7 作成するリポジトリーの詳細を定義した JSON エンティティー

{
  "name": "myCreatedRepository",
  "organizationalUnitName": "example",
  "description": "",
  "userName": "",
  "password": "",
  "requestType": "create",
  "gitURL": "git://localhost/example-repository"
}
Copy to Clipboard Toggle word wrap
重要

リポジトリーを作成、またはリポジトリーのクローンを作成する前に、クエリーに organizationalUnitName key-value ペアが含まれていること、および指定した組織単位が存在することを確認してください。

[GET] /repositories/REPOSITORY_NAME/projects/

特定リポジトリー内のプロジェクト一覧を JSON エンティティーとして返します。

例11.8 既存のプロジェクトに関する詳細が含まれる JSON エンティティー

[ {
  "name" : "my-project-name",
  "description" : "A project to illustrate a REST output.",
  "groupId" : "com.acme",
  "version" : "1.0"
}, {
  "name" : "yet-another-project-name",
  "description" : "Yet another project to illustrate a REST output.",
  "groupId" : "com.acme",
  "version" : "2.2.1"
} ]
Copy to Clipboard Toggle word wrap
[POST] /repositories/REPOSITORY_NAME/projects/

リポジトリーにプロジェクトを作成します。

例11.9 作成するプロジェクトを定義したリクエストボディー

{
  "name" : "NewProject",
  "description" : "Description of the new project.",
  "groupId" : "org.redhat.test",
  "version" : "1.0.0"
}
Copy to Clipboard Toggle word wrap
[DELETE] /repositories/REPOSITORY_NAME/projects/PROJECT_NAME
リポジトリー内のプロジェクトを削除します。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る