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との比較

観点RESTGraphQL
エンドポイントリソースごとに複数単一
データ取得固定されたレスポンスクライアントが指定
オーバーフェッチ発生しやすい発生しにくい
学習コスト低いやや高い
キャッシュHTTPキャッシュが容易独自の実装が必要

関連トピック

注意事項

このページの内容は概念的な説明にとどめています。 具体的な実装方法については、GraphQL公式サイトを参照してください。