APIの作成
APIの作成パーシストクエリの作成

パーシストクエリの作成

パーシストクエリはGraphQLとREST APIを組み合わせたものです。通常のGraphQLクエリをサイトに公開し、RESTエンドポイントと同様に独自のURLでアクセスできます。

たとえば、以下のようなパーシストクエリを通じてウェブサイトのデータを公開できます。

  • /graphql-query/homepage-posts
  • /graphql-query/user-widget
  • /graphql-query/post-content(投稿のIDを渡して実行: ?post=1
  • /graphql-query/post-content/es(投稿のコンテンツをスペイン語に翻訳)
  • その他

パーシストクエリエディター

パーシストクエリの実行

パーシストクエリを公開すると、そのパーマリンクから実行できます。

パーシストクエリはGETでアクセスするため、ブラウザから直接実行でき、リクエストしたデータをJSON形式で取得できます。

ブラウザでパーシストクエリを実行

アプリケーションからパーシストクエリを実行する

ガイド「クライアントからGraphQLサーバーへの接続」の手順に従ってください。

すべてのパーシストクエリへのアクセス

プラグインのメニューで「Persisted Queries」をクリックすると、作成済みのパーシストクエリの一覧が表示されます。

管理画面のパーシストクエリ一覧
管理画面のパーシストクエリ一覧

新しいパーシストクエリの作成

「Add New GraphQL persisted query」ボタンをクリックして、WordPressエディターを開きます。

パーシストクエリの作成

タイトルを入力し、パーマリンクが想定通りであることを確認してから、GraphQLクエリを入力し、スキーマ設定を選択してオプションを調整します。準備ができたらPublishボタンをクリックすると、パーマリンクがパーシストクエリのエンドポイントになります。

エンドポイント(およびソース)へのリンクは、「Persisted Query Endpoint Overview」サイドバーパネルに表示されます。

Persisted Query Endpoint Overview

デフォルトでは、パーシストクエリのエンドポイントのパスは/graphql-query/で、この値は設定から変更できます。

パーシストクエリの設定
パーシストクエリの設定

クエリエディター

エディター内のGraphiQLクライアントは、GraphQLパーシストクエリを入力する場所です。

パーシストクエリのGraphiQLクライアント

エディターにはExplorerアドオンが付属しており、左側パネルのフィールドをクリックしてクエリを構成できます。「Run」ボタンをクリックするとクエリが実行され、レスポンスをプレビューできます。

Explorerを使ったパーシストクエリの構成

スキーマ設定

パーシストクエリでリクエストされたフィールドへのアクセス権限は、スキーマ設定で定義します。

そのため、スキーマ設定を作成し、ドロップダウンから選択する必要があります(または「なし」もしくはデフォルトのものを使用できます)。

スキーマ設定の選択

プライベートパーシストクエリ

パーシストクエリのステータスをprivateに設定すると、エンドポイントには管理者ユーザーのみがアクセスできます。これにより、アクセス権限のないユーザーにデータが意図せず共有されることを防ぎます。

たとえば、メトリクスのレポートを作成するためのデータ取得など、アプリケーション管理に役立つプライベートパーシストクエリを作成できます。

プライベートパーシストクエリ

パスワード保護されたパーシストクエリ

特定のクライアント向けにパーシストクエリを作成する場合、パスワードを設定して、そのクライアントのみがエンドポイントにアクセスできるように追加のセキュリティレベルを提供できます。

パスワード保護されたパーシストクエリ

パスワード保護されたパーシストクエリに初めてアクセスすると、パスワードを求める画面が表示されます。

パスワード保護されたパーシストクエリ:初回アクセス

パスワードが入力・検証されると、ユーザーは目的のエンドポイントにアクセスできます。

URLパラメーターによるパーシストクエリの動的化

パーシストクエリを実行する際、各変数の値をURLパラメーター(変数名を使用)で設定できます。「Do URL params override variables?」オプションが有効になっている場合、URLパラメーターが優先されます。無効の場合、変数辞書で定義された値が優先されます(存在する場合)。

たとえば、このクエリでは結果の件数を変数$limitで制御し、デフォルト値は3です。

パーシストクエリでの変数の使用

このパーシストクエリを実行する際に?limit=5を渡すと、代わりに5件の結果を返すクエリが実行されます。

パーシストクエリの変数値の上書き

パーシストクエリ階層の作成

API階層の作成の手順をお読みください。

パーシストクエリの無効化

オプションで「Enabled」をfalseに設定すると、パーシストクエリを無効化できます。

この機能は、パーシストクエリをAPI階層の一部として使用し、子パーシストクエリに共通の動作を提供しつつ、自身は実行する必要がない場合に便利です。

パーシストクエリの説明

ドキュメント設定パネルの「Excerpt」フィールドを使用して、パーシストクエリに説明を追加します。

詳細はガイド「APIへの説明の追加」をご覧ください。

公開前のパーシストクエリのテスト

ステータスがdraftまたはpendingのパーシストクエリは、スキーマエディターユーザーのみが利用できます。

パーシストクエリを作成し、スキーマ設定を割り当て、draftまたはpendingとして公開してテストできます(例:アクセスコントロールルールが適切かどうかを確認する)。

承認後、ステータスをpublishに設定することで、パーシストクエリがすべてのユーザーに公開されます。

ソースの表示

エンドポイントに?view=sourceを追加すると、パーシストクエリの設定が表示されます(ユーザーがログインしており、ユーザーロールがアクセス権を持っている場合)。

パーシストクエリのソース


WordPressエディターでの設定

エディター本文の入力項目は以下のとおりです。

入力項目説明
タイトルパーシストクエリのタイトル
GraphiQLクライアントGraphQLクエリを記述・実行するエディター:
  • テキストエリアにクエリを記述する
  • クエリ内で変数を宣言し、下部の変数入力フィールドでその値を宣言する
  • 「Run」ボタンをクリックしてクエリを実行する
  • 右側の入力フィールドで結果を取得する
  • 「Docs」をクリックしてスキーマ情報を確認する
Explorer(モジュールGraphiQL Explorerが有効な場合にのみ表示)を使用すると、フィールドをクリックするだけでクエリに自動追加されます
スキーマ設定ドロップダウンから、パーシストクエリに適用するスキーマ設定、または以下のオプションのいずれかを選択します:
  • "Default": プラグインの設定で選択されているスキーマ設定を使用する
  • "None": パーシストクエリに制限を設けない
  • "Inherit from parent": 親パーシストクエリと同じスキーマ設定を使用する。
    このオプションはモジュールAPI Hierarchyが有効で、パーシストクエリに親クエリ(ドキュメント設定で選択)がある場合に使用できます
オプションパーシストクエリの動作をカスタマイズします:
  • Enabled?: パーシストクエリが有効かどうか。
    API階層の親クエリである場合に無効化すると便利です
  • Do URL params override variables?: GraphiQLクライアントで定義された変数の値をURLパラメーターで上書きできるようにする
  • Inherit query from ancestor(s)?: 親パーシストクエリと同じクエリを使用する。
    このオプションはモジュールAPI Hierarchyが有効で、パーシストクエリに親クエリ(ドキュメント設定で選択)がある場合に使用できます

ドキュメント設定の入力項目は以下のとおりです。

入力項目説明
パーマリンクパーシストクエリが公開されるエンドポイント
カテゴリーパーシストクエリを分類できます。
例: mobileappなど
Excerptパーシストクエリの説明を入力します。
この入力はモジュールExcerpt as Descriptionが有効な場合に使用できます
ページ属性親パーシストクエリを選択します。
この入力はモジュールAPI Hierarchyが有効な場合に使用できます