Sitecore GraphQL APIの使用を開始する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このトピックでは、Sitecore GraphQL APIの設定方法と使用方法について説明します。GraphQLは、JSSサーバーコンポーネントパッケージをインストールすることで入手できます。
サイトでフォールバック言語をサポートしている場合は、開始する前にExperience Edge Connectorで 公開言語のフォールバックを有効にし てください。
Sitecore GraphQLを設定する
Sitecore GraphQLを設定するには:
-
web.configファイルで、<compilation debug="true">.これにより、GraphQL GUIがデフォルトのセキュリティ設定で有効になります。セキュリティ上の理由から、GUIはデフォルトでは実稼働シナリオでは無効になっています。
-
GraphQLサブスクリプションまたはWebSocketトランスポートを使用する場合は、IISでWebSocket機能を有効にしてから、IISをリセットする必要があります。
メモWebSocketは、Windows Server 2008 R2以前ではサポートされていません。これらのオペレーティング システムでホストされているサブスクリプションを使用することはできません。
-
CORSまたは偽装を使用する場合は、master:/sitecore/system/Settings/Services/API KeysフォルダーにSSC APIキーを設定します。APIキーは、Sitecore Services Clientと同じようにGraphQLと連携します。
GraphQLエンドポイントの設定
Sitecoreヘッドレス サービス16.0以降では、Edgeプレビュー エンドポイント はデフォルトで有効になっていますが、追加のエンドポイントを設定できます。
GraphQLエンドポイントを設定するには:
-
GraphQL APIを使用するエンドポイントを少なくとも1つ定義します。
次の例では、Masterデータベースに必要な認証を持つコンテンツAPIエンドポイントを定義しています。
手記Sitecore GraphQLのデフォルト設定ファイルは、使用可能な設定オプションを理解するのに適したリソースです。エンドポイント設定でrefで参照されるデフォルトのプリセットは、特に興味深いものです。ファイルは /App_Config/Sitecore/Services.GraphQLフォルダにあります。
GraphQLエンドポイントを使用する
GraphQLエンドポイントを定義したら、定義したURLからアクセスできます。たとえば、次のようなURLでAPIをクエリできますhttp://my.sitecore.domain/sitecore/api/graph/items/master。
ただし、GraphiQL GUIでクエリを作成する方がはるかに簡単です。GUIにアクセスするには、エンドポイントURLにURL http://my.sitecore.domain/sitecore/api/graph/items/master/ui/uiを追加します。GUIでスキーマを利用したオートコンプリートを使用してGraphQLクエリを作成したり、クエリをテストしたり、スキーマのドキュメントを確認したりできます。
前の設定例で、GraphiQL GUIを使用してクエリを作成するには、次のようにします。
-
Sitecoreにログインします (サンプル エンドポイントには認証が必要です)。
-
/sitecore/api/graph/items/master/uiに移動します。このUIでは、Masterデータベース内のアイテムとテンプレートをクエリできます。
-
「 Docs 」リンクをクリックして、タイプスキーマを参照します。
-
GraphiQLコード補完機能を使用してGraphQLクエリを記述します ( CTRL-Spaceを押すと手動でトリガーされます)。たとえば、次のクエリは、項目、その子、およびそのテンプレート定義を1つのクエリで取得します。
結果 (省略) は次のようになります。
エンドポイントに認証が必要な場合、GUIも認証を必要とします。エンドポイントにSSC APIキー(?sc_apikey=api-key-guid)が必要な場合、GUIにはAPIキーも必要です。
APIのクエリ
Sitecore GraphQL APIのクエリは、他のGraphQLエンドポイントと比較して特別なことはありません。Apolloなどのクライアントライブラリを使用することをお勧めします。
Sitecore GraphQLエンドポイントは、次のタイプのGraphQLリクエストをサポートしています。
-
標準のJSONペイロード形式のapplication/jsonコンテンツ タイプとクエリを含むHTTP POST。
-
HTTP POSTとapplication/jsonコンテンツタイプと標準ペイロードのJSON配列(バッチ処理に使用)。
-
本文にapplication/graphqlコンテンツタイプと生のGraphQLクエリを含むHTTP POST。
-
クエリ文字列パラメーター (query、operationName、変数) を含むHTTP GET。
-
graphql-wsプロトコル(サブスクリプションまたはクエリ)を使用したWebSocket。
すべてのタイプのGraphQL操作は、APIフレームワークでサポートされています (スキーマは、これらの種類の操作をすべて実装する場合と実装しない場合があります)。
-
クエリ (データの読み取り)。
-
突然変異(データの変更)。
-
サブスクリプション (データのリアルタイム更新をサブスクライブする)。
サブスクリプションは、WebSocketを使用するApollo subscriptions-transport-wsプロトコルを使用して実装されます。GraphQLエンドポイントURLへのソケット接続は自動的に許可されます。
追加機能
GraphiQL /uiに加えて、各GraphQLエンドポイントはいくつかの追加部分もサポートしています。
-
$url/schema - GraphQLスキーマをSchema Definition Language (SDL) 形式でダンプします。SDL形式は、eslint-plugin-graphqlmなどのツールやgraphql-toolsなどのスキーマモックツールを使用した静的コード分析に役立ちます。
-
$url/stats - エンドポイントスキーマとそのパフォーマンスに関する基本的な統計を表示します。
-
$url/cache - エンドポイント上のGraphQLクエリ キャッシュの詳細を表示します。
これらの追加エンドポイント機能は、web.configファイルの設定パッチを使用してそれぞれ無効にできます。