GraphQL
作成日:
API web-development Facebook
概要
GraphQLに関する知識とメモ
GraphQLとは
GraphQLは、APIのためのクエリ言語およびランタイムです。2012年にFacebook(現Meta)が社内で開発し、2015年にオープンソースとして公開されました。
クライアントが必要なデータを正確に指定でき、過不足のないデータ取得が可能です。
GraphQLの基本概念
スキーマ
APIで利用可能なデータの型と構造を定義します。GraphQLはスキーマ駆動開発を促進します。
クエリ(Query)
データを取得するための操作です。クライアントは必要なフィールドのみを指定できます。
ミューテーション(Mutation)
データを作成・更新・削除するための操作です。
サブスクリプション(Subscription)
リアルタイムでデータの変更を購読する仕組みです。
GraphQLの特徴
- 必要なデータのみ取得: クライアントが必要なフィールドを指定するため、オーバーフェッチを防げる
- 単一エンドポイント: 複数のREST APIエンドポイントの代わりに、1つのエンドポイントで対応
- 強い型付け: スキーマによりAPIの型安全性が保証される
- 自己文書化: スキーマがそのままAPIのドキュメントとなる
RESTとの比較
| 観点 | REST | GraphQL |
|---|---|---|
| エンドポイント | リソースごとに複数 | 単一 |
| データ取得 | 固定されたレスポンス | クライアントが指定 |
| オーバーフェッチ | 発生しやすい | 発生しにくい |
| 学習コスト | 低い | やや高い |
| キャッシュ | HTTPキャッシュが容易 | 独自の実装が必要 |
関連トピック
- API技術選定ガイド - API技術の歴史と選定基準
- REST API - 従来のAPI設計手法
注意事項
このページの内容は概念的な説明にとどめています。 具体的な実装方法については、GraphQL公式サイトを参照してください。