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リクエストで受け取れます。
この用語をシェア
最終更新: