概要
GraphQL(グラフキューエル)は、
APIを設計・操作するためのクエリ言語であり、実行環境も含む仕様です。
クライアント(例:Webアプリ)が必要なデータだけをリクエストできる点が最大の特徴です。
従来のREST APIのように、複数のURLエンドポイントを呼び分ける必要がなく、
1つのエンドポイントで柔軟なデータ取得が可能です。
正式名称
Graph Query Language(グラフ・クエリ・ランゲージ)
略称
GraphQL(グラフキューエル)
特徴
- 必要なデータだけ取得できる(オーバーフェッチ/アンダーフェッチ防止)
- 単一エンドポイントで複雑なクエリが可能
- フロントエンドが主導でクエリを定義(バックエンドの仕様変更に強い)
- リアルタイム通信にも対応(サブスクリプション)
- APIの仕様をスキーマとして明示できる(型安全)
- 型があるため、ドキュメント自動生成や補完も強力
具体例
例えば「ユーザーの名前と投稿タイトル一覧」を取得したい場合:
▼ GraphQL クエリ(例):
{
user(id: "1") {
name
posts {
title
}
}
}
▼ 返ってくるデータ(例):
{
"data": {
"user": {
"name": "田中太郎",
"posts": [
{ "title": "初めての投稿" },
{ "title": "GraphQLについて" }
]
}
}
}
✅ ポイント:
user
に関する情報を1回のリクエストで取得name
とposts.title
の指定したフィールドのみが返ってくる
関連用語
用語 | 解説 |
---|---|
REST API(レスト・エーピーアイ) | 従来主流のAPI設計。リソースごとにURLを使い分ける |
クエリ(Query) | データを取得するための命令文 |
ミューテーション(Mutation) | データを変更(追加・更新・削除)する命令 |
スキーマ(Schema) | GraphQL API の設計図。取得可能なデータの構造や型を定義 |
サブスクリプション(Subscription) | データの変化をリアルタイムで通知する仕組み |
エンドポイント | APIを呼び出すURL(GraphQLは通常 /graphql など1つ) |