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

REST API で集約用語を使用する

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

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

先に進む前に、新しい 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) をクリックし、以下の値を入力してください。

    分野価値
    ラベルできる
    複数形ラベルエイブルズ
    名前できる
  3. 新しい オブジェクト ドラフトを選択し、 フィールド タブに移動して、次のテキスト フィールドを追加します。

    ラベルフィールド名タイプ必須
    名前名前文章✔
    説明説明文章
  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. サンプルコードをダウンロードしたら、liferay-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"、
      "操作" : "作成"、
      "処理済みアイテム数" : 0、
      "開始時刻" : "2022-04-27T00:18:23Z"、
      "totalItemsCount" : 0
    }
    
  3. Ables_GET_FromCompany を実行して、 aggregationTerms パラメーターを使用して作成されたすべてのエントリのリストを返します。

    レスポンスには、2 つのファセット条件、 dateModified と description を含む ファセット ブロックが含まれている必要があります。

    ...
    "ファセット" : [ {
        "facetCriteria" : "dateModified",
        "facetValues" : [ {
          "numberOfOccurrences" : 3,
          "term" : "20220427001823"
        } ]
      }, {
        "facetCriteria" : "説明"、
        "facetValues" : [ {
          "出現回数" : 1、
          "用語" : "バー"
        }, {
          "numberOfOccurrences" : 1,
          "term" : "foo"
        }, {
          "出現回数" : 1,
          "用語" : "goo"
        } ]
    } ],
    ...
    

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

    {
    ...
      "id" : 41969、
    ...
      "名前" : "Able 1"、
      "説明" : "Foo"
    ...
    }, {
    ...
      "id" : 41971、
    ...
      "名前" : "エイブル 2"、
      "説明" : "バー"
    }、 {
    ...
      "id" : 41973、
    ...
      "名前" : "エイブル 3"、
      "説明" : "グー"
    }
    ...
    

法典の検証

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

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