GraphQLスキーマの作成
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
スキーマは、データを整理および構築する方法を記述します。
Sitecoreインスタンスに、Sitecoreが提供するGraphQLスキーマを通じて公開されないデータまたはビジネス ロジックが含まれている場合は、独自のスキーマ プロバイダーを作成することをお勧めします。スキーマ プロバイダーを使用して、スキーマの自己完結型の部分を追加できます。
新しいルート クエリを追加する場合、型システムが他のスキーマ プロバイダーの型に依存しない場合は、スキーマ プロバイダーを選択する必要があります。スキーマプロバイダーの良い例は、サードパーティのCRMシステムです。
スキーマ プロバイダーを実装する
スキーマ プロバイダーを実装する
スキーマ プロバイダーを実装するには、次のようにします。
-
SchemaProviderBaseクラスを実装するC# クラスを作成します。このクラスは、クエリ可能なルート フィールド (項目はコンテンツ スキーマ プロバイダーのルート クエリ フィールド) を含む、GraphQLスキーマの構造を定義します。グラフの種類 (スキーマ内のノードの種類) を定義する他のサポート クラスを作成します。
-
スキーマプロバイダーをGraphQLエンドポイントに登録します。これは、エンドポイントの設定パッチへのタイプ登録です。
次の例は、完全なスキーマ プロバイダーの実装を示しています。これにより、現在のSitecoreユーザーに対してクエリを実行できます。
この例では、スキーマが小さいため、入れ子になったクラスを使用します。実際のスキーマはサイズが大きいため、RootFieldTypesとGraphTypesを別々のファイルに分割することをお勧めします。
スキーマ プロバイダーをエンドポイントに登録するには、次のようなSitecore設定パッチ ファイルを使用します。
GraphQLスキーマの拡張
GraphQLスキーマの拡張
エクステンダを使用して、既存のスキーマを変更または追加できます。エクステンダはスキーマ プロバイダーの後に処理され、完成したスキーマに型を変更したり追加したりできます。つまり、複数のスキーマ プロバイダーからスキーマを変更または追加できます。スキーマ プロバイダーによって提供される既存の型にフィールドを追加する場合、外部APIを既存の型にフックする場合、またはスキーマ プロバイダーによって提供されるスキーマを変更する場合は、エクステンダを使用します。
エクステンダを使用する良い例は、YouTube動画IDなどのサードパーティのAPI IDを含むアイテムからAPIデータを取得する場合です: YouTube APIを使用して動画の説明を取得し、Videoアイテム タイプと共にGraphQLで公開できます。
GraphQLスキーマを拡張するには:
-
スキーマ プロバイダーと同様に、SchemaExtenderクラスを拡張するクラスと、構成内のGraphQLエンドポイントへの登録を使用して、スキーマ エクステンダーを作成します。
-
次の例は、GraphQLエンドポイントにエクステンダーを登録する方法を示しています。