APIの作成
APIの作成カスタムエンドポイントの作成

カスタムエンドポイントの作成

単一エンドポイントに加えて、Gato GraphQL はカスタムエンドポイントもサポートしています。カスタムスキーマ(利用可能なタイプのサブセットのみを含む)とユーザー検証ルールに基づいてデータの取得・送信が可能であり、さまざまなユーザーやアプリケーションのニーズに対応できます。

必要な数だけカスタムエンドポイントを作成できます。

たとえば、以下のようなカスタムエンドポイントを作成できます:

  • 特定のクライアントやユーザー向け(/graphql/my-client/
  • より多くの機能にアクセスできるユーザーグループ向け(PROユーザーなど)(/graphql/pro-users/
  • モバイルアプリへのデータ提供用(/graphql/mobile-app/
  • サードパーティ API へのアクセス提供用(/graphql/external-api/
  • その他

カスタムエンドポイントエディター

アプリケーションからカスタムエンドポイントを実行する

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

すべてのカスタムエンドポイントにアクセスする

プラグインのメニューで「Custom Endpoints」をクリックすると、作成済みのカスタムエンドポイントの一覧が表示されます:

管理画面のカスタムエンドポイント
管理画面のカスタムエンドポイント

新しいカスタムエンドポイントを作成する

「Add New GraphQL endpoint」ボタンをクリックして WordPress エディターを開きます:

新しいカスタムエンドポイントの作成

タイトルを付け、パーマリンクが希望どおりであることを確認し、スキーマ設定を選択してオプションを調整します。準備ができたら Publish ボタンをクリックすると、設定したパーマリンクをエンドポイント URL として使用するカスタムエンドポイントが作成されます。

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

Custom Endpoint Overview

スキーマ設定

スキーマに含まれる要素と、ユーザーがそれにアクセスできる範囲は、スキーマ設定で定義されます。

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

スキーマ設定の選択

プライベートエンドポイント

カスタムエンドポイントのステータスを private に設定することで、管理者ユーザーのみがエンドポイントにアクセスできるようになります。これにより、アクセス権を持つべきでないユーザーにデータが意図せず共有されることを防止できます。

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

プライベートカスタムエンドポイント

パスワード保護されたエンドポイント

特定のクライアント向けにカスタムエンドポイントを作成する場合、パスワードを割り当てることで、そのクライアントのみがエンドポイントにアクセスできるという追加のセキュリティレベルを提供できます。

パスワード保護されたカスタムエンドポイント

パスワード保護されたエンドポイントに初めてアクセスする際(エンドポイントに直接アクセスする場合、またはその GraphiQL や Interactive Schema クライアントにアクセスする場合)、パスワードを要求する画面が表示されます:

パスワード保護されたカスタムエンドポイント:初回アクセス

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

パスワード保護されたカスタムエンドポイント:認証後

エンドポイント階層の作成

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

カスタムエンドポイントの無効化

オプションで「Enabled」を false に設定すると、カスタムエンドポイントを無効にできます。

この機能は、カスタムエンドポイントを API 階層の一部として使用し、子カスタムエンドポイントに共通の動作を提供しつつ、自身は実行されない場合に便利です。

カスタムエンドポイントの説明を追加する

ドキュメント設定パネルの「Excerpt」フィールドを使用して、カスタムエンドポイントに説明を付けます。

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

エンドポイントクライアント

各カスタムエンドポイントには、操作用の専用クライアントセットがあります。

GraphiQL クライアント

エンドポイントに ?view=graphiql を追加すると、GraphiQL クライアントにアクセスできます:

カスタムエンドポイントの GraphiQL クライアント

GraphiQL クライアントは、カスタムエンドポイントの編集時に「Custom Endpoint Overview」サイドバーパネルからも開くことができます:

エディター内のカスタムエンドポイントの GraphiQL クライアントへのリンク

同様に、カスタムエンドポイントの一覧ページで、エントリーにカーソルを合わせたときに表示される「GraphiQL」リンクからクライアントを開くこともできます:

一覧内のカスタムエンドポイントの GraphiQL クライアントへのリンク
一覧内のカスタムエンドポイントの GraphiQL クライアントへのリンク

GraphiQL クライアントを無効にするには、カスタムエンドポイントエディターでオプション「Expose GraphiQL client?」を false に設定します。

Interactive Schema(Voyager)クライアント

エンドポイントに ?view=schema を追加すると、Interactive Schema クライアントにアクセスでき、エンドポイントのスキーマを視覚化して操作できます:

カスタムエンドポイントの Voyager クライアント

Interactive Schema クライアントは、カスタムエンドポイントの編集時に「Custom Endpoint Overview」サイドバーパネルからも開くことができます:

エディター内のカスタムエンドポイントの Interactive Schema クライアントへのリンク

同様に、カスタムエンドポイントの一覧ページで、エントリーにカーソルを合わせたときに表示される「Interactive Schema」リンクからクライアントを開くこともできます:

一覧内のカスタムエンドポイントの Interactive Schema クライアントへのリンク
一覧内のカスタムエンドポイントの Interactive Schema クライアントへのリンク

Interactive Schema クライアントを無効にするには、カスタムエンドポイントエディターでオプション「Expose the Interactive Schema client?」を false に設定します。

公開前にエンドポイントをテストする

ステータスが draft(下書き)または pending(保留中)のカスタムエンドポイントは、スキーマエディターのユーザーのみが利用できます。これにより、以下の操作が可能になります:

  • エンドポイントに対して GraphQL クエリを実行する
  • エンドポイントの GraphiQL および Voyager クライアントにアクセスする

カスタムエンドポイントを作成し、スキーマ設定を割り当て、draft または pending として公開してテスト(例:アクセスコントロールルールが適切かどうかの確認)を行うことができます。

承認されたら、ステータスを publish に設定し、カスタムエンドポイントをすべてのユーザーが利用できるようにします。

ソースの表示

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

カスタムエンドポイントのソース


WordPress エディターでの設定

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

入力項目説明
タイトルカスタムエンドポイントのタイトル
スキーマ設定ドロップダウンから、カスタムエンドポイントに適用するスキーマ設定を選択するか、以下のオプションのいずれかを選択します:
  • "Default":プラグインの設定で選択されているスキーマ設定を使用
  • "None":カスタムエンドポイントに制約を設けない
  • "Inherit from parent":親カスタムエンドポイントと同じスキーマ設定を使用。
    このオプションは、モジュール "API Hierarchy" が有効で、カスタムエンドポイントに親クエリがある場合(ドキュメント設定で選択)に利用可能
オプションカスタムエンドポイントの動作をカスタマイズします:
  • Enabled?: カスタムエンドポイントが有効かどうか。
    API 階層の親クエリであるカスタムエンドポイントを無効にする場合に便利です
  • Expose GraphiQL client?: エンドポイントに GraphiQL クライアントを付与するかどうかを有効/無効にします(?view=graphiql でアクセス可能)
  • Expose the Interactive Schema client?: エンドポイントに Interactive Schema クライアントを付与するかどうかを有効/無効にします(?view=schema でアクセス可能)
  • Inherit query from ancestor(s)?: 親カスタムエンドポイントと同じクエリを使用します。
    このオプションは、モジュール "API Hierarchy" が有効で、カスタムエンドポイントに親クエリがある場合(ドキュメント設定で選択)に利用可能

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

入力項目説明
パーマリンクカスタムエンドポイントが利用可能になるエンドポイントのURL
カテゴリーカスタムエンドポイントをカテゴリー分けできます。
例:mobileapp など
Excerptカスタムエンドポイントの説明を提供します。
この入力項目は、モジュール "Excerpt as Description" が有効な場合に利用可能
ページ属性親カスタムエンドポイントを選択します。
この入力項目は、モジュール "API Hierarchy" が有効な場合に利用可能