---
title: "Sitecore GraphQL API"
slug: "sitecore-graphql-api"
abstract: "GraphQLをSitecoreでセットアップし使い始める方法を説明します"
---
# Sitecore GraphQL API

Sitecore GraphQL APIはSitecoreの上に載せられた汎用的なGraphQLサービスプラットフォームです。データをホストし、GraphQLクエリを通じて提示します。APIはGraphQLサブスクリプションを利用したリアルタイムデータをサポートしています。

GraphQLは、フロントエンドを動かすための本番レベルのAPIが必要な場合に適しています。従来のREST APIと比べて、GraphQLははるかに保守性が高く、組み込みのGUIツールのおかげで発見やクエリもはるかに容易で、帯域幅もはるかに効率的で、より高性能です。

GraphQLの使い方や学習方法について [の優れたチュートリアル](http://graphql.org/learn/) があります。

## Sitecore GraphQL概念

Sitecore GraphQL APIはGraphQL標準を実装していますが、いくつかのSitecore特有の詳細が含まれています。

絶対URLで *エンドポイントを* 定義します。これらのエンドポイントはGraphQL*スキーマ* (強型グラフ定義)をホストします。このスキーマは1つ以上のスキーマ提供者(例: ContentSchemaProviderやCustomersCrmSchemaProvider)で構成されています。これらのエンドポイントはGraphQL言語を理解しています。REST APIとは異なり、正式なリクエストとレスポンス形式があります。したがって、GraphQLエンドポイントはすべて単一のコントローラによってサービスされ、新しいエンドポイントを定義するためのコードは不要です。これにより、リクエストバッチング(単一のHTTPリクエスト内で複数のクエリを処理)が可能になり、ネットワークトラフィックを削減できます。

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

Sitecore GraphQL認証(標準認証クッキーを通じた)およびSSC APIキーを用いた帰属・偽装をサポートしています。カスタム認可ルーチンを利用できます。コンテンツエンドポイントは特定の操作を無効化できるため、例えば変異のない読み取り専用コンテンツエンドポイントが可能です。

GraphQLクエリエディタはSitecore GraphQLエンドポイントに組み込まれており、クエリの作成(コード補完付き)やAPIドキュメントのレビューを行います。GraphQLタイプシステムはSitecoreテンプレートを認識しています。したがって、強い型付きクエリを実際のフィールドに対して作成・検証することができます。テンプレートの変更はリアルタイムで更新されます。テンプレートフィールドはまた、型GraphQLにマッピングされているため、例えば画像フィールドのsrcやwidthに対しても強型付けでアクセスできます。