1. データ

集約

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

集約は、関連するエンティティ定義、データ ソース、第 1 レベルの関係を 1 つの HTTP リクエストで呼び出す方法として使用します。アセット集約を一度呼び出すことで、これらの定義をすべて複数回呼び出す必要がなくなります。

[!警告]

  • 集約は条件付きメンバーおよび条件付きメンバーグループをサポートしていません。

この例では、ALtest の集計の詳細を見ることができます。 この例では、ユース ケースに以下のアセットを使用しています (ID 番号にご注意ください)。

集約に含まれるすべての関連するエンティティ。たとえば、アセットは PCM.ProductFamilies に関連付けることができます。 アセットが含まれる製品ファミリについて知りたい場合は、この定義を集約に含めます。

Powerful Granola の製品ファミリを見ると、アセットがリンクされたアセットであることがわかります。

そこで、PCM.ProductFamilies 定義を使用して、ALtest 集約の Powerful Granola 製品ファミリのすべての詳細を返します。これは、M.Asset エンティティの M.Asset は、M.PCM.ProductFamily の子であることに基づく関係があることを知っているからです。

{
  "entitydefinition_name": "M.Asset",
  "definitions": [
    "M.PCM.Product",
    "M.PCM.ProductFamily",
    "M.PCM.Catalog"
  ],
  "includes": [
    {
      "name": "PCMProductFamilyToAsset",
      "role": "Child"
    },
    {
      "name": "PCMCatalogToAsset",
      "role": "Child"
    }
  ],
  "datasources": [
    "VirusScanResult"
  ]
}

集約の構成の詳細については、「集約の構成」を参照してください。

集約は、関連するエンティティ定義、データ ソース、第 1 レベルの関係を 1 つの HTTP リクエストで呼び出す方法として使用します。アセット集約を一度呼び出すことで、これらの定義をすべて複数回呼び出す必要がなくなります。

この例では、ALtest の集計の詳細を見ることができます。 この例では、ユース ケースに以下のアセットを使用しています (ID 番号にご注意ください)。 この例で使用されている Sitecore Content Hub インスタンスのベース URL は https://demositecorecontenthub.com です。これにより、HTTP GET リクエスト: /api/aggregates/{Aggregate_name}/{id} を使用して集約を呼び出すことができます。

この例では以下になります。

https://demositecorecontenthub.com/api/aggregates/ALtest/31041

API の呼び出しが行われると、レスポンスが大きくなります。 その理由は、すべての定義と関連する (集約に含まれる) エンティティ定義、データ ソース、および集約で定義された第 1 レベルの関係を集約するためです。

このすべてのデータを個別に返す呼び出しの数は多くなりますが、これらをグループ化して、集約エンドポイントへの 1 回の呼び出しで一緒に呼び出すことができます。

たとえば、アセットが使用されている製品ファミリの詳細を示すレスポンスに含まれている M.PCM.ProductFamily の関連定義を含めました。 リターンには、Powerful Granola 製品ファミリの詳細が記載されます。

これは、集約に含まれるすべての関連するエンティティに適用されます。たとえば、アセットは ** PCM.ProductFamilies** に関連付けることができます。 アセットが含まれる製品ファミリについて知りたい場合は、この定義を集約に含めます。

Powerful Granola の製品ファミリを見ると、アセットが関連するアセットであることがわかります。

製品ファミリ

そこで、PCM.ProductFamilies 定義を使用して、ALtest 集約の Powerful Granola 製品ファミリのすべての詳細を返します。これは、M.Asset エンティティの M.Asset は、M.PCM.ProductFamily の子であることに基づく関係があることを知っているからです。

{
    "entity": {
        "id": 30289,
        "identifier": "Demo.ProductFamily.Granola",
        "cultures": [
            "en-US"
        ],
        "properties": {
            "ProductFamilyName": "Powerful Granola",
            "ProductFamilyLabel": {
                "en-US": "Powerful Granola"
            },
            "ProductFamilyShortDescription": {
                "en-US": "Granola for strength\n"
            },
            "ProductFamilyLongDescription": {
                "en-US": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur finibus feugiat suscipit. Pellentesque urna odio, viverra sed ex convallis, mollis hendrerit tortor. Proin a purus ante. Pellentesque velit orci, pellentesque et mollis vel, blandit et ipsum. Vestibulum tellus turpis, rutrum ut diam viverra, interdum fermentum est. Aliquam egestas porta augue ut volutpat. Sed eu sollicitudin lacus.</p>\n<p>Phasellus augue felis, euismod non metus non, tincidunt congue metus. Aliquam nec ligula vehicula elit ullamcorper viverra. Curabitur viverra convallis eros ut fermentum. Cras at metus ultricies, tempus lorem eu, porttitor mi. Duis gravida dolor nisi, at facilisis mi dignissim at. Curabitur augue massa, malesuada non fermentum sit amet, tincidunt convallis tellus. Mauris blandit ante sit amet semper rhoncus. Curabitur cursus nibh interdum luctus imperdiet. Proin rutrum ornare mollis. Aliquam gravida neque turpis, vel pulvinar quam tincidunt nec. Aliquam ut odio enim.</p>"
            }
        }
    }
}

したがって、M.Asset エンティティおよび M.PCM.ProductFamily エンティティの場合、集約を使用して 1 回の呼び出しを行うことができます。

この記事を改善するための提案がある場合は、 お知らせください!