GraphQL API
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
GraphQLはAPI向けのクエリ言語で、開発を効率化し、特定のコンテンツを取得してどのチャネルにも届け、必要なコンテンツだけを取得できます。複数のデータソースを1つのクエリで組み合わせ、1つの応答で要求されたデータを受け取ることで効率が向上します。
Sitecore GraphQLはさまざまなAPIで利用可能です。データ構造、すなわちスキーマは実装ごとに固有のもので、例えばSitecore Content Hubはオーダーメイドのスキーマを使用します。以下の図に示すように、クライアントチャネルはGraphQLクエリを使って下部のデータソースからデータを要求します。

GraphQLを使えば、プレビュー APIやデリバリー APIなどの利用可能なAPIを使ってデータをクエリできます。Sitecoreは速度をGraphQL最適化し、複数のクエリを1つのHTTPリクエストでバッチ処理することでネットワークトラフィックを削減できます。
!重要プレビューAPIおよびDelivery APIはミューテーションをサポートしていません。
GraphQLのエンドポイントはスキーマ(強型グラフ定義)をホストし、GraphQL言語を理解しています。REST APIとは異なり、正式なリクエストとレスポンス形式があります。各エンドポイントは独自の孤立した構成を持つため、信頼性を高めるために他のエンドポイント構成から分離できます。
!注GraphQLクエリエディタはSitecore GraphQLエンドポイントに組み込まれており、クエリの作成(コード補完付き)やAPIドキュメントのレビューが可能です。GraphQLタイプシステムはSitecoreテンプレートを認識しているため、強い型付きクエリを実際のフィールドに対して作成・検証できます。テンプレートの変更はリアルタイムで更新され、GraphQL型にマッピングされます。
GraphQLクエリの構造
GraphQLクエリ は、要求されたデータを表現するために特定の構造を使用します。各リクエストは、本文にクエリが含まれる標準的なPOSTリクエストです。GraphQLクエリの主な要素は以下の通りです:
- Field - ターゲットデータ内の名前付きフィールド(例: total、 results、 id、など)。
- Argument - 特定の場に関連する値(例: id_eq: "Ai-JNhneM024pMItfBeYJQ)。
- Operation type - 操作の種類(クエリ、ミューテーション、サブスクリプション)。
- Operation name - 演算名(例: getContentInContentCollection)。
- Variable - 操作に付随する動的パラメータ。
以下の例は、getContentInContentCollectionというクエリ操作を表しています。この例では、クエリはIDがAi-JNhneM024pMItfBeYJQのコンテンツコレクションを探し、id、contentCollectionName、、contentCollectionToContentオブジェクトの特定の内容を含む複数のフィールド値を取得します。
query getContentInContentCollection { m_ContentCollection(id: "Ai-JNhneM024pMItfBeYJQ") { id contentCollectionName contentCollectionToContent { total results { content_Name } } } }
このクエリは以下の応答データを返しますが、これはクエリ自体と同じ全体の構造を持ちます。
{ "data": { "allM_ContentCollection": { "total": 1, "results": { "id": "Ai-JNhneM024pMItfBeYJQ", "contentCollectionName": "Fruitful", "contentCollectionToContent": { "total": 4, "results": { "content_Name": "Healthy Mimosa blog", }, { "content_Name": "Healthful is the latest Flavorful Brand", }, { "content_Name": "Sparkling Punch using Fruitful Orange", }, { "content_Name": "Power comes from within", }
} }
} } }