第11章 ナレッジストア REST API
ナレッジストア REST API に対する REST API コールにより、組織単位、リポジトリー、およびプロジェクトを管理することができます。
すべての POST および DELETE コールは、リクエストの詳細およびジョブ ID を返します。この ID を使用して、ジョブのステータスを要求してジョブが正常に完了したかどうかを確認できます。GET コールは、リポジトリー、プロジェクト、および組織単位に関する情報を返します。
これらのコールのパラメーターおよび結果は、JSON エンティティーの形式で提供されます。さまざまなエンティティーの Java クラスが org.guvnor.rest.client パッケージから利用可能です。詳細については、以降のセクションで説明します。
11.1. ジョブコール リンクのコピーリンクがクリップボードにコピーされました!
ほとんどのナレッジストア REST コールは、発行後にジョブ ID を返します。コールは同期されていないため、後でジョブを参照してライフサイクルの進行に応じてそのステータスを確認する際に、この ID が必要になります。
ライフサイクルの進行に応じて、ジョブは以下のステータスをとります。
| ステータス | 説明 |
|---|---|
|
|
ジョブが受け入れられ、処理中である。 |
|
|
無効な内容が含まれるため、リクエストが受け入れられなかった。 |
|
|
要求されたリソース (パス) が存在しない。 |
|
|
リソースがすでに存在する。 |
|
|
サーバー側のエラーが発生した。 |
|
|
ジョブが正常に完了した。 |
|
|
ジョブが失敗した。 |
|
|
ジョブが承認された。 |
|
|
ジョブが許否された。 |
|
|
ジョブ ID が見つからなかった。以下の場合にジョブのステータスが
|
以下のジョブコールを利用することができます。
- [GET] /jobs/JOB_ID
指定した
JOB_IDのステータスを返します。例11.1 リポジトリーのクローン作成を要求する GET ジョブコールに対するフォーマット済み応答
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - [DELETE] /jobs/JOB_ID
-
指定した
JOB_IDのジョブを削除します。ジョブがまだ処理中でなければ、コールによりジョブキューからジョブが削除されます。ただし、このコールでは、処理中のジョブはキャンセルまたは停止されません。
これらのジョブコールは、共に JobResult インスタンスを返します。
11.2. 組織単位コール リンクのコピーリンクがクリップボードにコピーされました!
ナレッジストアに対する組織単位コールにより、部署や部門をモデル化する際に役立つ組織単位を管理することができます。組織単位は複数のリポジトリーを持つことができます。
以下の組織単位コールを利用することができます。
- [GET] /organizationalunits/
すべての組織単位の一覧を返します。
例11.2 JSON 形式の組織単位一覧
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - [GET] /organizationalunits/ORGANIZATIONAL_UNIT_NAME
- 特定の組織単位に関する情報を返します。
- [POST] /organizationalunits/
ナレッジストアに組織単位を作成します。組織単位は JSON エンティティーとして定義されます。コールには
OrganizationalUnitインスタンスが必要で、CreateOrganizationalUnitRequestインスタンスを返します。例11.3 JSON 形式の組織単位
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - [POST] /organizationalunits/ORGANIZATIONAL_UNIT_NAME
既存組織単位の詳細を更新します。
要求した
UpdateOrganizationalUnitインスタンスのnameおよびownerフィールドは、共に空欄のままにすることができます。この操作により、descriptionフィールドやリポジトリーの関連性を更新することはできません。例11.4 JSON 形式の組織単位更新用インプット
{ "owner" : "NewOwner", "defaultGroupId" : "org.new.default.group.id" }{ "owner" : "NewOwner", "defaultGroupId" : "org.new.default.group.id" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow - [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 リポジトリーコールの応答
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - [GET] /repositories/REPOSITORY_NAME
- 特定のリポジトリーに関する情報を返します。
- [DELETE] /repositories/REPOSITORY_NAME
- リポジトリーを削除します。
- [POST] /repositories/
JSON エンティティーで定義したリポジトリーを作成、またはリポジトリーのクローンを作成します。
例11.6 クローンを作成するリポジトリーの詳細を定義した JSON エンティティー
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例11.7 作成するリポジトリーの詳細を定義した JSON エンティティー
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要リポジトリーを作成、またはリポジトリーのクローンを作成する前に、クエリーに
organizationalUnitNamekey-value ペアが含まれていること、および指定した組織単位が存在することを確認してください。- [GET] /repositories/REPOSITORY_NAME/projects/
特定リポジトリー内のプロジェクト一覧を JSON エンティティーとして返します。
例11.8 既存のプロジェクトに関する詳細が含まれる JSON エンティティー
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - [POST] /repositories/REPOSITORY_NAME/projects/
リポジトリーにプロジェクトを作成します。
例11.9 作成するプロジェクトを定義したリクエストボディー
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - [DELETE] /repositories/REPOSITORY_NAME/projects/PROJECT_NAME
- リポジトリー内のプロジェクトを削除します。