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 に変更してください。
次に、このチュートリアル用の基本的なオブジェクトを作成するには、以下の手順に従ってください:
-
グローバルメニュー (
) を開き、 コントロールパネル → オブジェクト に移動します。 -
追加 ボタン (
) をクリックし、以下の値を入力してください。分野 価値 ラベル できる複数形ラベル エイブルズ名前 できる -
新しい オブジェクト ドラフトを選択し、 フィールド タブに移動して、次のテキスト フィールドを追加します。
ラベル フィールド名 タイプ 必須 名前 名前 文章 ✔ 説明 説明 文章 -
詳細 タブに移動し、 公開 をクリックします。
重要このチュートリアルでは、上記の値を使用する必要があります。
公開後は、ヘッドレスAPIを介してオブジェクトにアクセスできます。
サンプルコードの準備
以下のコマンドを実行して、提供されているサンプルコードをダウンロードして解凍してください。
curl https://resources.learn.liferay.com/examples/liferay-b3x5.zip -O
unzip liferay-b3x5.zip
これらのスクリプトには、以下のAPIが含まれています。
| HTTP メソッド | HTTPエンドポイント | 説明 |
|---|---|---|
| GET | / | Liferayインスタンスのオブジェクトエントリーの完全なリストを返します。結果は、ページ分割、絞り込み、検索、およびソートが可能です |
| POST | /batch | API呼び出しで提供された詳細を使用して複数のオブジェクトエントリーを作成します |
サンプルコードの使用
-
サンプルコードをダウンロードしたら、
liferay-b3x5プロジェクト内のcurlフォルダに移動してください。cd liferay-b3x5/curl -
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 } -
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 つです。 これらは、リクエスト応答内のオブジェクトエントリからデータを集約するために使用されるファセット基準を決定します。