GraphQL

Current version: 10.1

Sitecore GraphQL API は、Sitecore の最上位にある汎用の GraphQL サービス プラットフォームです。これはデータをホストし、GraphQL クエリを通して提示します。この API は、GraphQL サブスクリプションを使用することで、リアル タイム データをサポートします。

GraphQL には次の機能があります。

  • フロントエンドで実行されます。GraphQL プロトコルは、Web アプリ、 PWA (プログレッシブ Web アプリ)、モバイル アプリ用のフロントエンド開発などを目的としています。

  • これは効率的です。GraphQL は、クエリで要求されたデータのみを返します。これにより、データのオーバーフェッチがなくなり、帯域幅が節約され、パフォーマンスが向上します。クエリ バッチ処理や自動永続クエリなどの高度な機能を使用して、帯域幅使用のニーズをさらに減らすことができます。

  • これは厳密に型指定され、スキーマ駆動です。組み込みのスキーマ イントロスペクションにより、GUI のクエリ オーサリング ツール、セルフ ドキュメンテーション、静的解析、API モッキング機能が可能になります。

  • GraphQL のクエリはグラフ トラバーサルです。これにより、REST API を介して実行するために多数の要求を必要とする非常に表現力豊かなクエリが可能になります。

  • これは大きなエコシステムを備えています。GraphQL のコミュニティは大規模で、便利なツールがたくさんあります。

GraphQL は、フロントエンドを動かすためのプロダクション グレードの API が必要な場合に適しています。従来の REST API と比較して、GraphQL はメンテナンス性に優れており、GUI ツールが組み込まれているため検出や問い合わせが容易で、帯域幅の効率も良く、強力な機能を備えています。

GraphQL の使い方や学習方法については、非常に優れたチュートリアルがあります。

Sitecore GraphQL の概念

Sitecore GraphQL API は、 GraphQL 標準を実装しますが、Sitecore 固有の事項があります。

特定の絶対 URL を持つエンドポイントを定義します。これらのエンドポイントは、GraphQL のスキーマ (厳密に型指定されたグラフ定義) をホストします。このスキーマは、1 つ以上のスキーマ プロバイダー (たとえば、ContentSchemaProviderCustomersCrmSchemaProvider など) によって構成されます。これらのエンドポイントは GraphQL 言語を理解します。REST API とは異なり、正式な要求と応答の形式があります。したがって、GraphQL エンドポイントはすべて 1 つのコントローラーでサービスを提供し、新しいエンドポイントを定義するためのコードは必要ありません。また、要求のバッチ処理 (1 つの HTTP リクエストで複数のクエリを実行する) などの機能により、ネットワーク トラフィックを削減することができます。

各エンドポイントはそれぞれ隔離された構成を持っているため、エンドポイントを他のエンドポイントの構成から隔離して信頼性を高めることができます。また、スキーマ プロバイダーによって作成された後のエンドポイントの GraphQL スキーマを修正および追加するエクステンダーによって、スキーマ全体を拡張することができます。これにより、標準的なアイテムのグラフ型に、アナリティクス エクステンダーによって新しいアナリティクス プロパティを追加できるようにしたり、CRM システムや他の REST サービス プロバイダからのデータをアイテム フィールドに統合したりといったシナリオが可能になります。

Sitecore GraphQL は、標準の認証 Cookie を介した認証および SSC API キーを使用した属性と偽装をサポートします。カスタム認証ルーチンを使用することもできます。コンテンツ エンドポイントでは、特定の操作を無効にすることができるため、たとえば、変異のない読み取り専用のコンテンツ エンドポイントが可能です。

Sitecore GraphQL は速度が最適化されています。また、パフォーマンス メトリクスがあり、有効にするとフィールドごとにパフォーマンスの問題を分析することができます。

GraphQL クエリ エディターは、Sitecore GraphQL エンドポイントに組み込まれており、クエリのオーサリング (コード補完機能付き) や API ドキュメントのレビューを行うことができます。GraphQL の型システムは Sitecore のテンプレートを認識できるので、厳密に型指定されたクエリを実際のフィールドに対して作成し、検証することができます。テンプレートの変更はリアルタイムで更新されます。また、テンプレートのフィールドは、GraphQL の型にマッピングされているため、たとえば、画像フィールドの srcwidth およびその値に対して厳密に型指定されたアクセスを行うことができます。

Do you have some feedback for us?

If you have suggestions for improving this article,