Custom Object APIs
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

オブジェクトエントリバージョンの管理

Liferay DXP 2025年第4四半期以降 / ポータル 2026年第1四半期以降

重要

オブジェクトエントリのバージョン管理は、Liferay の コンテンツ管理システム (CMS)で使用されます。 カスタム オブジェクトのエントリでバージョン管理を使用するには、API を使用してオブジェクト定義でバージョン管理を有効にする必要があります。そのためには、 objectEntryVersioning 属性を trueに設定します。 その後、バージョン管理 API エンドポイントを呼び出すことができます。 バージョン管理の統合は、コレクション、フォーム コンテナー、データ セット マネージャーなどのすぐに使用できるオブジェクト エントリ管理や表示機能では使用できません。

オブジェクト定義を公開すると、そのエントリを管理するための REST API が生成されます。 これらの API にはバージョン管理エンドポイントが含まれています。 オブジェクト定義でバージョン管理が有効になっている場合は、バージョン管理エンドポイントを使用できます。

定義でバージョン管理が有効になっている場合、PATCH または PUT を使用してエントリを更新すると、オブジェクト エントリの新しいバージョンが作成されます。 個々のエントリのバージョン管理エンドポイントの概要は次のとおりです。

操作エンドポイントの例バージョン管理の動作
PATCH または PUT を使用してエントリを更新します。/o/c/ables/外部参照コード/新しいエントリ バージョンが作成されます。
エントリのバージョンを取得する/o/c/ables/by-external-reference-code//versionsERC を渡して、エントリの既存のバージョンをすべて取得します。
バージョンを取得する/o/c/ables/外部参照コード別//バージョン別/単一のバージョンを取得するには、ERC とバージョン番号を渡します。
特定のバージョンを復元する/o/c/ables/外部参照コード別//バージョン別//復元以前のバージョンを復元して最新のものにします。 これにより、古いバージョンに基づいてエントリの新しいバージョンが作成されます。 復元中にエントリのフィールドを更新することはできません。
バージョンをコピーします。/o/c/ables/外部参照コード別//バージョン別//コピーエントリ バージョンに基づいて、一意の ERC を持つ新しいエントリを作成します。
バージョンを削除します。/o/c/ables/外部参照コード別//バージョン別/以前のバージョンが最新バージョンになりました。 存在しない場合はエントリが削除されます。

さらに、 /o/c/ables/approved エンドポイントを使用して、定義の最新の承認済みバージョンをすべて取得できます。

エンドポイントをテストできます。 まず、Liferay インスタンスをセットアップします。

Liferayの準備

新しいLiferay インスタンスを起動し、以下を実行します。

docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.132-ga132

http://localhost:8080でLiferayにサインインします。 メールアドレス test@liferay.com とパスワード testを使用してください。 プロンプトが表示されたら、パスワードを learnに変更します。

以下のコマンドを実行して、提供されたサンプルコードをダウンロードし、解凍してください。

curl https://resources.learn.liferay.com/examples/liferay-j5b2.zip -O
unzip liferay-j5b2.zip

次に、 liferay-j5b2/curl に移動し、次のスクリプトを実行してデータを入力します。

./populate_j5b2.sh

これにより、バージョン管理が有効になっているオブジェクト定義が作成され、3 つのエントリが作成され、PUT 呼び出しで 1 つが更新されて新しいバージョンが作成されます。 エントリの 1 つはドラフト状態です。

オブジェクト バージョン管理 API をテストするためのさまざまなエントリが利用可能です。

バージョン管理APIの呼び出し

curl コマンドを実行するシェル スクリプトを実行して、これらの GET エンドポイントを調べることができます。

  1. ERC に一致するエントリのすべてのバージョンを取得します。

    ./Ables_GET_Versions_ByExternalReferenceCode.sh ABLE_1
    

    ABLE_1 には、Able 1.0 と Able 1.1 という 2 つのバージョンがあります。

  2. 次に、バージョン番号を指定してエンドポイントを使用して 1 つのバージョンを返します。

    ./Ables_GET_Version_ByExternalReferenceCode.sh ABLE_1 1
    

    Able 1.0 という名前の ABLE_1 バージョンのみが返されます。

  3. 次に、オブジェクト定義の最新の承認済みバージョンをすべて取得します。

    ./Ables_GET_Approved.sh
    

    Able 1.1 と Able 2.0 という名前の 2 つの Able エントリ バージョンが返されます。 Able 3.0 には、ステータスが ドラフトのバージョンが 1 つあるため、返されません。 Able 1 には 2 つのバージョンがありますが、このエンドポイントは最新の承認済みバージョンのみを返します。

これらの呼び出しは、オブジェクト エントリ バージョンに対する追加のアクションを示します。

  1. Able 1.0 を最新バージョンに復元します。

    ./Ables_PUT_Restore_ByExternalReferenceCode.sh ABLE_1 1
    

    この呼び出しで古いバージョンを復元することはできますが、同時にフィールドを更新することはできません。

  2. Able 1.1 (つまり、 ABLE_1 エントリのバージョン 2) をコピーします。

    ./Ables_POST_Copy_ByExternalReferenceCode.sh ABLE_1 2
    

    これにより、バージョンが新しいドラフト エントリとしてコピーされます (オブジェクト定義でドラフトが有効になっている場合)。

    コピーされたバージョンは、新しい下書きエントリとして追加されます。

  3. ABLE_1からバージョン2を削除します。

    ./Ables_DELETE_Version.sh ABLE_1 2
    
  4. 最初の ABLE_1 バージョンのステータスを 期限切れに設定します:

    ./Ables_POST_Expire_ByExternalReferenceCode.sh ERC 1
    

    最新バージョンを期限切れにすると、ステータスが期限切れ (3) としてマークされ、エントリの有効期限が現在の日付に設定されます。