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

nestedFields を使用してエントリ履歴を監査する

ライフレイ 7.4 U72+/GA72+

オブジェクト定義に対して エントリ履歴を有効にする と、REST API で nestedFields パラメータを使用してエントリ イベントを監査できます。 GET リクエストのパスに nestedFields=auditEvents を追加します (例: http://localhost:8080/o/c/tickets/?nestedFields=auditEvents)。

開始するには、 新しい Liferay 7.4 インスタンスをセットアップ し、提供されているチュートリアル コードを 準備 します。 次に、 スクリプト を実行してエントリを作成し、更新し、 nestedFields パラメータを使用してそれらの変更を照会します。

重要

REST API を使用してエントリの履歴を表示するには、エントリに対する 表示 権限と オブジェクト エントリ履歴 権限の両方が必要です。 権限フレームワークの統合を参照してください。

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に変更します。

次に、Liferay の永続監査メッセージプロセッサを有効にします。 次に、オブジェクト定義を作成して公開します。

永続監査メッセージプロセッサの有効化

  1. グローバル メニュー (Global Menu) → コントロール パネル タブ、 → システム設定を開きます。

  2. [セキュリティ] の下で、 [監査] をクリックし、 [永続メッセージ監査メッセージ プロセッサ] タブに移動します。

  3. 有効をチェックします。

  4. [保存]をクリックします。

    永続メッセージ監査メッセージプロセッサタブに移動し、有効をオンにします。

オブジェクト定義の作成

  1. グローバル メニュー (Global Menu) を開き、 コントロール パネル タブに移動して、 オブジェクトをクリックします。

  2. オブジェクトの下書きを 作成します。

    項目
    ラベルAble
    複数形のラベルAbles
    名前Able
  3. このフィールドを下書きに追加します。

    ラベル項目名種類必須
    Namenameテキストボックス
  4. 詳細タブで、 エントリ履歴を有効にするを切り替えます。

  5. オブジェクトを公開します

公開されると、ヘッドレス API 経由でオブジェクトにアクセスできるようになります。

サンプルコードを準備する

サンプルコードをダウンロードして解凍します。

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

サンプル コードには、オブジェクト エントリを作成、更新、および照会するためのシェル スクリプトが含まれています。

ヒント

サイトおよび会社オブジェクト用に生成された API の完全なリストについては、 オブジェクト ヘッドレス フレームワーク統合を参照してください。 Liferay API Explorer の [server]:[port]/o/api (例: localhost:8080/o/api)からカスタムオブジェクト API を表示およびテストできます。 REST アプリケーション をクリックし、API を選択します。

サンプルコードを使用する

  1. liferay-g4m3 プロジェクトの curl フォルダに移動します。

    cd liferay-g4m3/curl
    
  2. Ables_POST_ToCompany を実行して、3 つの Able エントリを作成します。

    ./Ables_POST_ToCompany.sh
    
    {
      ...
      "externalReferenceCode" : "able-one",
      "id" : 47512,
      ...
      "name" : "Able 1 - Foo"
    }
    
    {
      ...
      "externalReferenceCode" : "able-two",
      "id" : 47514,
      ...
      "name" : "Able 2 - Foo"
    }
    
    {
      ...
      "externalReferenceCode" : "able-three",
      "id" : 47516,
      ...
      "name" : "Able 3 - Foo"
    }
    
  3. Ables_PATCH_ByExternalReferenceCodeable-one ERC で実行します。

    ./Ables_PATCH_ByExternalReferenceCode.sh able-one
    

    これにより、エントリの名前フィールドが 2 回更新されます。

    {
      ...
      "externalReferenceCode" : "able-one",
      "id" : 47512,
      ...
      "name" : "Able 1 - Bar"
    }
    
    {
      ...
      "externalReferenceCode" : "able-one",
      "id" : 47512,
      ...
      "name" : "Able 1 - Goo"
    }
    
  4. Ables_GET_ByExternalReferenceCodeable-one ERC で実行します。

    ./Ables_GET_ByExternalReferenceCode.sh able-one
    

    これは、 able-one エントリを auditEvents 配列とともに返します。この配列は、最新のイベントから始まり、エントリの作成で終わるエントリ イベントの履歴です。

    {
      ...
      "auditEvents" : [ {
        "auditFieldChanges" : [ {
          "name" : "name",
          "newValue" : "Able 1 - Goo",
          "oldValue" : "Able 1 - Bar"
        } ],
        "dateCreated" : "2023-05-04T05:44:41Z",
        "eventType" : "UPDATE"
      }, {
        "auditFieldChanges" : [ {
          "name" : "name",
          "newValue" : "Able 1 - Bar",
          "oldValue" : "Able 1 - Foo"
        } ],
        "dateCreated" : "2023-05-04T05:44:40Z",
        "eventType" : "UPDATE"
      }, {
        "auditFieldChanges" : [ {
          "name" : "name",
          "newValue" : "Able 1 - Foo"
        } ],
        "dateCreated" : "2023-05-04T05:44:37Z",
        "eventType" : "ADD"
      } ],
      ...
      "externalReferenceCode" : "able-one",
      "id" : 47512,
      ...
      "name" : "Able 1 - Goo"
    }
    

    auditEvents 配列には次の要素が含まれます。

    • auditFieldChanges: 更新されたフィールドと、その新しい値と古い値。
    • dateCreated: イベントの日時。
    • eventType: イベントの種類 (例: ADDUPDATEDELETE)。
  5. Ables_GET_FromCompanyを実行します。

    ./Ables_GET_FromCompany.sh able-one
    

    これにより、最新のイベントから始まるすべての Able エントリとそのイベントの監査が返されます。

    {
      ...
      "items" : [ {
        ...
        "auditEvents" : [ {
          "auditFieldChanges" : [ {
            "name" : "name",
            "newValue" : "Able 2 - Foo"
          } ],
          "dateCreated" : "2023-05-04T06:15:50Z",
          "eventType" : "ADD"
        } ],
        ...
        "externalReferenceCode" : "able-two",
        "id" : 47514,
        ...
        "name" : "Able 2 - Foo"
      }, {
        ...
        "auditEvents" : [ {
          "auditFieldChanges" : [ {
            "name" : "name",
            "newValue" : "Able 3 - Foo"
          } ],
          "dateCreated" : "2023-05-04T06:15:51Z",
          "eventType" : "ADD"
        } ],
        ...
        "externalReferenceCode" : "able-three",
        "id" : 47516,
        ...
        "name" : "Able 3 - Foo"
      }, {
        ...
        "auditEvents" : [ {
          "auditFieldChanges" : [ {
            "name" : "name",
            "newValue" : "Able 1 - Goo",
            "oldValue" : "Able 1 - Bar"
          } ],
          "dateCreated" : "2023-05-04T06:16:25Z",
          "eventType" : "UPDATE"
        }, {
          "auditFieldChanges" : [ {
            "name" : "name",
            "newValue" : "Able 1 - Bar",
            "oldValue" : "Able 1 - Foo"
          } ],
          "dateCreated" : "2023-05-04T06:16:24Z",
          "eventType" : "UPDATE"
        }, {
          "auditFieldChanges" : [ {
            "name" : "name",
            "newValue" : "Able 1 - Foo"
          } ],
          "dateCreated" : "2023-05-04T06:15:49Z",
          "eventType" : "ADD"
        } ],
        ...
        "externalReferenceCode" : "able-one",
        "id" : 47512,
        ...
        "name" : "Able 1 - Goo"
      } ],
      "lastPage" : 1,
      "page" : 1,
      "pageSize" : 20,
      "totalCount" : 3
    }
    

GETリクエストの調査

これらの GET リクエストの URL には、 nestedFields=auditEvents パラメータが含まれています。

Ables_GET_ByExternalReferenceCode

curl \
	"http://localhost:8080/o/c/ables/by-external-reference-code/${1}?nestedFields=auditEvents" \
	--user "test@liferay.com:learn"

Ables_GET_FromCompany

curl \
	"http://localhost:8080/o/c/ables/?nestedFields=auditEvents" \
	--user "test@liferay.com:learn"