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

REST APIでの集計用語の使用

REST APIを使用してオブジェクトエントリーを照会する場合、オブジェクトのフィールドをファセット基準として使用してエントリーデータを集計できます。 これを行うには、GETリクエストに aggregationTerms パラメーターを追加し、ファセット基準として使用したいデータフィールドを指定します。 これらの基準には、カスタム フィールド、デフォルトのシステム フィールド、または関係フィールドが含まれます。 その後、リクエストレスポンスは指定されたデータファセットを単一のfacetsブロックにグループ化します。

ここでは、 aggregatedTerms パラメーターを、基本的なカスタムオブジェクトと一緒に使用します。

続行する前に、 新しい Liferay DXP/Portal 7.4 インスタンスをセットアップ し、提供されているチュートリアル コードを 準備 してください。

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

次に、次の手順に従って、このチュートリアルの基本的なオブジェクトを 作成 します。

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

  2. 追加 ボタン (Add Button) をクリックし、次の値を入力します。

    項目
    ラベルAble
    複数形のラベルAbles
    名前Able
  3. 新しい オブジェクト ドラフトを選択し、 フィールド タブに移動して、次のテキスト フィールドを追加します。

    ラベル項目名種類必須
    名前nameテキストボックス
    説明説明テキストボックス
  4. 詳細 タブに移動し、 公開をクリックします。

    重要

    このチュートリアルでは、上記の値を使用する必要があります。

公開後は、ヘッドレスAPIでオブジェクトにアクセスすることができます。

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

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

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

これらのスクリプトには、以下のAPIが含まれています。

HTTP メソッドHTTPエンドポイント説明
GET/Liferayインスタンスのオブジェクトエントリーの完全なリストを返します。結果は、ページ分割、絞り込み、検索、およびソートが可能です
POST/batchAPI呼び出しで提供された詳細を使用して複数のオブジェクトエントリーを作成します

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

  1. サンプルコードをダウンロード後、 lliferay-b3x5プロジェクト内のcurlフォルダに移動します。

    cd liferay-b3x5/curl
    
  2. Ables_POST_Batchを実行します。 複数のオブジェクトエントリーを作成します。

    ./Ables_POST_Batch.sh
    

    端末には同様の出力が表示されるはずです。

    {
      "className" : "com.liferay.object.rest.dto.v1_0.ObjectEntry",
      "contentType" : "JSON",
      "errorMessage" : "",
      "executeStatus" : "STARTED",
      "externalReferenceCode" : "",
      "failedItems" : [ ],
      "id" : 1,
      "importStrategy" : "ON_ERROR_FAIL",
      "operation" : "CREATE",
      "processedItemsCount" : 0,
      "startTime" : "2022-04-27T00:18:23Z",
      "totalItemsCount" : 0
    }
    
  3. Ables_GET_FromCompanyを実行すると、 aggregatedTerms パラメーターで作成されたすべてのエントリーのリストが返されます。

    レスポンスには、dateModifieddescriptionの2つのファセット基準を持つ facets ブロックが含まれる必要があります。

    ...
    "facets" : [ {
        "facetCriteria" : "dateModified",
        "facetValues" : [ {
          "numberOfOccurrences" : 3,
          "term" : "20220427001823"
        } ]
      }, {
        "facetCriteria" : "description",
        "facetValues" : [ {
          "numberOfOccurrences" : 1,
          "term" : "bar"
        }, {
          "numberOfOccurrences" : 1,
          "term" : "foo"
        }, {
          "numberOfOccurrences" : 1,
          "term" : "goo"
        } ]
    } ],
    ...
    

    このブロックの後に、標準的なGETレスポンスが続きます。

    {
      ...
      "id" : 41969,
      ...
      "name" : "Able 1",
      "description" : "Foo"
      ...
    }, {
      ...
      "id" : 41971,
      ...
      "name" : "Able 2",
      "description" : "Bar"
    }, {
      ...
      "id" : 41973,
      ...
      "name" : "Able 3",
      "description" : "Goo"
    }
    ...
    

コードを調べる

curl \
	"http://localhost:8080/o/c/ables/?aggregationTerms=dateModified,description" \
	--user "test@liferay.com:learn"

この一括GETメソッドには、dateModifieddescriptionという2つの値を持つ aggregationTerms URLパラメーターが含まれています。 これらは、リクエスト応答内のオブジェクトエントリーからデータを集約するために使用されるファセット基準を決定します。