Experience Edge スキーマ
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Experience Edge for Experience Manager (XM) には、Sitecore ヘッドレス開発における一般的なフロントエンドのユースケースに対応するように設計された、読み取り専用の GraphQL スキーマが付属しています。これは、Sitecore アイテムに関する限られた情報を公開します。たとえば、使用可能な標準フィールドはありません。
次のクエリをエントリ ポイントとして使用できます。
-
item
- パスまたは ID でアイテムをクエリできます。 -
layout
- サイトまたはルート パスでアイテムをクエリできます。通常、レイアウト サービス JSON (rendered
) へのアクセスを目的としています。 -
search
- フィールド値または共通プロパティでアイテムを検索するためのブール値フィールド検索クエリを作成できます。
詳細については、クエリの例を参照し、プレビュー エンドポイント IDEの GraphQL テスト UI で [DOCS] タブを使用してください。
テンプレートのプロジェクション
Experience Edge スキーマで使用できる型は、そのスキーマにパブリッシュされた Sitecore インスタンスのテンプレート定義を反映しています。特定の型からフィールドを選択するインライン フラグメントを使用して、厳密に型指定されたテンプレート フィールドを有効にすることができます。
Sitecore では、複数のテンプレートに同じ名前を付けたり、アイテム グラフ型の core フィールドとフィールド名が競合する複数のテンプレートを持ったりすることができます。GraphQL では、型とフィールドの名前は一意である必要があります。名前の競合が発生した場合、作成日が最も新しいアイテムまたはフィールド アイテムの名前に _{guid}
が追加されます。作成日が使用されるのは、順序が安定している必要があるためと、グラフ型名が参照された後、変更されないようにするためです。
[en] GraphQL types are only created for templates that follow the Helix content structure. This means that GraphQL types are generated only for templates under the following paths:
-
[en]
<foundation>/sitecore/templates/Foundation</foundation>
-
[en]
<feature>/sitecore/templates/Feature</feature>
-
[en]
<project>/sitecore/templates/Project</project>
-
[en]
<userdefined>/sitecore/templates/User Defined</userdefined>
ページネーション
Experience Edge スキーマ内のページネーションが行われたクエリとフィールド (検索クエリなど) は、カーソルベースのシステムを利用して結果ページをリクエストします。
ページネーションが行われたクエリには、次のような特徴があります。
-
クエリ引数には、
first
(返される結果の数) とafter
(開始カーソル) が含まれます。first
の既定値は10
です。 -
クエリ結果には、
pageInfo
とhasNext
(結果が他にもあるかどうか) およびendCursor
(次のページを取得するために after 引数で使用される) が含まれます。 -
クエリ結果には、
total
(得られる結果の合計数を提供する) も含まれます。注記first 引数には、
Preview
スキーマの基盤となる GraphQL ライブラリで使用される複雑度計算をクエリするという特別な意味があります。具体的には、ネストされたchildren
フィールドをアイテム グラフ型で使用すると、すぐに「Query is too complex to execute」というエラーが発生します。これを回避するために、complexityConfiguration
設定のmaxComplexity
値を大きくすることができます。詳細については、Sitecore GraphQL のドキュメントと GraphQL .NET のドキュメントを参照してください。
[en] Query complexity
[en] The Experience Edge query complexity is limited to 250. We recommend you test your query before using it in a runtime environment, to make sure it meets the complexity requirements. If your query is too complex, try the following:
-
[en] Break it into multiple smaller queries. For example, use one query to retrieve a data set, and apply subsequent queries to that dataset. Large queries of multiple objects increase query complexity substantially.
-
[en] Remove unnecessary fields from the query.
コンテンツ検索で使用可能なフィールド
Edge for XM には GraphQL search
クエリの標準フィールドが含まれています。(元のテンプレート フィールド名により) 含まれているテンプレートのフィールドもすべてコンテンツ検索クエリで使用できます。
次の表では、Edge スキーマの検索クエリで使用できる標準フィールドについて説明します。
フィールド |
説明 |
---|---|
_templates |
ベース (複数値) を含むすべてのテンプレート GUID。 |
_path |
GUID (複数値) によるすべての親。 |
_parent |
アイテムの直接の親が持つ ID。 |
_name |
アイテム名。 |
_language |
アイテム言語。 |
_hasLayout |
アイテムにプレゼンテーションの詳細やレイアウト データがあるかどうかを反映します。 |