GLOSSA

GraphQL

ぐらふきゅーえる

GraphQL

一言でいうと

クライアント側が必要なデータを問い合わせ言語で指定して取得できるAPI仕様のこと。

詳しい意味

GraphQL は、Meta(Facebook)が開発したAPI仕様で、クライアント側が「欲しいデータの構造」を問い合わせ言語で指定して取得できる仕組みです。RESTでは複数エンドポイントから複数回取得が必要だったケースを、1リクエストでネストしたデータも一度に取得できるのが特徴。「過剰取得(over-fetching)」「不足取得(under-fetching)」を解消し、画面ごとの最適化されたデータ取得が可能。一方、サーバー実装はRESTより複雑で、N+1問題やキャッシュ戦略の難しさがあります。GitHub API、Shopify、Apollo Server / Apollo Client が代表例。RESTと完全に置き換えるよりは「特定の用途で併用」が現実的選択。

何に使うか

画面ごとに必要なデータが大きく違うアプリ。複数リソースを横断する複雑なクエリが多いとき。フロントエンドの自由度を高めたい大規模Webアプリ。

どんな時に出るか

「GraphQLにする?」「Apollo Server」「N+1問題」といった場面で登場します。

具体例

  • ダッシュボード画面は GraphQL にして、画面遷移ごとのリクエスト数を1回に集約した。
  • GraphQL の N+1 問題対策として DataLoader を導入した。

別名・略称

graphql(ぐらふきゅーえる)GraphQL(ぐらふきゅーえる)Apollo(あぽろ)

関連語

RESTAPI

間違えやすい語

REST

初心者向けメモ

図書館の「司書に欲しい本のリストを伝えると、まとめて持ってきてくれる」スタイルです。RESTが「自分で書架を回って1冊ずつ取りに行く」のに対し、GraphQLは「司書(GraphQL)に必要な本のタイトル一覧を渡し、一括で受け取る」。便利な反面、司書の能力(サーバー実装)が問われます。

この説明に改善点はありますか?

この説明を修正提案する新しい用語を提案する

提案は管理者が確認した後に反映されます