本文へスキップ

GraphQLとは?

ぐらふきゅーえる

GraphQLとは、APIクエリ言語とランタイムの仕様で、クライアントが必要なデータを宣言的に指定して取得できる柔軟なデータフェッチの仕組みです。

GraphQLは、Facebookが社内利用のために開発し2015年にオープンソースとして公開したAPIのためのクエリ言語および実行エンジンの仕様です。REST API課題(オーバーフェッチ・アンダーフェッチ)を解決するために設計されました。

GraphQLの主な特徴は次のとおりです。

  • クライアントが必要なフィールドだけを指定してリクエストできるため、過不足のないデータ取得が可能
  • 複数のリソースを1回のリクエストでまとめて取得できる
  • スキーマによる型定義でAPIの構造が明確になり、自動ドキュメント生成や型安全な開発が可能
  • ミューテーション(データ変更)とサブスクリプション(リアルタイム更新)もサポート

REST APIでは「/users/1」「/users/1/posts」のように複数エンドポイントを叩く必要がある場面でも、GraphQLは単一エンドポイントへのクエリで関連データをまとめて取得できます。

実装言語を問わないため、Node.js(Apollo Server、GraphQL Yoga)・Ruby・Python・Javaなど多様な言語で利用できます。GitHubやShopifyのAPIにも採用されており、特にモバイルアプリや複雑なフロントエンドを持つサービスでの採用が多いです。一方、学習コストやN+1問題への対処(DataLoaderなど)が課題として挙げられることもあります。

使い方・例文

モバイルアプリから「ユーザー名・アバター・最新3件の投稿タイトル」だけが必要な場合、GraphQLクエリで取得フィールドを指定すれば、不要なデータを含まないレスポンスを1リクエストで受け取れます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

同じ読みのことば

「ぐらふきゅーえる」と同じ読みで、意味のちがうことばです。

関連用語