GraphQL

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

GraphQLは、開発を効率化するAPIのクエリ言語であり、特定のコンテンツを取得して任意のチャネルに配信し、必要なコンテンツのみを取得できます。複数のデータソースを1つのクエリに組み合わせ、要求されたデータを1つの応答で受信できるため、効率が向上します。

Sitecore GraphQLはさまざまなAPIで使用できます。データ構造 (スキーマ) は実装に固有です (たとえば、Sitecore Content Hubは特注のスキーマを使用します)。次の図に示すように、クライアント チャネルはGraphQLクエリを使用して、下部のデータ ソースからデータをリクエストします。

GraphQL overview

GraphQLを使用すると、プレビュー API配信APIなどの利用可能なAPIを使用してデータをクエリできます。SitecoreはGraphQLの速度を最適化し、1つのHTTPリクエストで複数のクエリをバッチ処理することでネットワーク トラフィックを削減できます。

大事な

Preview APIとDelivery APIはミューテーションをサポートしていません。

GraphQLエンドポイントは、スキーマ (厳密に型指定されたグラフ定義) をホストし、GraphQL言語を理解します。REST APIとは異なり、正式な要求と応答の形式があります。各エンドポイントには独自の分離された構成があるため、エンドポイントを他のエンドポイント構成から分離して信頼性を高めることができます。

メモ

GraphQLクエリ エディターはSitecore GraphQLエンドポイントに組み込まれているため、クエリを (コード補完付きで) 作成したり、APIドキュメントを確認したりできます。GraphQLタイプ システムはSitecoreテンプレートを認識しているため、実際のフィールドに対して厳密に型指定されたクエリを作成および検証できます。テンプレートの変更はリアルタイムで更新され、GraphQLタイプにマッピングされます。

GraphQLクエリの構造

GraphQLクエリ は、特定の構造を使用して要求されたデータを表します。各要求は、本文にクエリを含む標準のPOST要求です。GraphQLクエリの主な要素は次のとおりです。

  • Field - ターゲット データ内の名前付きフィールド ( totalresultsidなど)。

  • Argument - 特定のフィールドに関連付けられた値( id_eq: "Ai-JNhneM024pMItfBeYJQなど)。

  • Operation type - 操作のタイプ (クエリ、ミューテーション、またはサブスクリプション)。

  • Operation name - 操作の名前 ( getContentInContentCollectionなど)。

  • Variable - 操作にアタッチされた動的パラメーター。

次の例は、getContentInContentCollectionという名前のクエリ操作を表しています。この例では、クエリはidがAi-JNhneM024pMItfBeYJQのコンテンツコレクションを検索し、そのコレクションの複数のフィールド値 ( idcontentCollectionNamecontentCollectionToContentオブジェクトの特定のコンテンツなど) をフェッチします。

RequestResponse
query getContentInContentCollection {
 m_ContentCollection(id: "Ai-JNhneM024pMItfBeYJQ") {
  id
  contentCollectionName
  contentCollectionToContent {
   total
   results {
    content_Name
   }
  }
 }
}

このクエリは、クエリ自体と同じ全体的な構造を持つ次の応答データを返します。

RequestResponse
{
 "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",
       }
      ]
     }
    }
   ]
  }
 }
}

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

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