Persisted Queries
GraphQLクエリを使用してRESTのような事前定義エンドポイントを作成し、両APIのメリットを享受できます。

Click to watch tutorial video - 08:19
REST APIでは、それぞれが事前定義されたデータセットを返す複数のエンドポイントを作成します。一方GraphQL APIでは、単一のエンドポイントに任意のクエリを送信し、要求したデータのみを取得します。
Persisted queriesは通常のGraphQLクエリですが、サーバーに保存されて独自のURLでアクセスできるため、RESTエンドポイントをエミュレートします。これにより、両APIのメリットを享受しながら、それぞれのデメリットを回避できます:
| メリット | デメリット |
|---|---|
✅ GETまたはPOSTでアクセス可能 | POSTのみでアクセス |
| ✅ サーバーまたはCDNでキャッシュ可能 | |
| ✅ 安全性が高い:意図したデータのみ公開 | |
| ✅ データの過少・過剰取得がなく、1回のリクエストで全データを取得 | |
| ✅ プロジェクトの迅速なイテレーションが可能 | |
| ✅ 自己ドキュメント化が可能 | |
| ✅ クライアントがクエリを作成・公開できる |

Persisted queryが公開されると、そのパーマリンクから実行できます。
Persisted queryはGraphiQLクライアントから実行できるほか、(GETでアクセスできるため)ブラウザから直接実行することも可能で、要求したデータをJSON形式で取得できます:

Persisted queriesはカテゴリーと階層で管理できます。
