Experience Edge スキーマ

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

このページの翻訳は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 です。

  • クエリ結果には、pageInfohasNext (結果が他にもあるかどうか) および 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

アイテムにプレゼンテーションの詳細やレイアウト データがあるかどうかを反映します。

何かフィードバックはありますか?

この記事を改善するための提案がある場合は、