GraphQLとは

概要

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回のリクエストで取得
  • nameposts.title指定したフィールドのみが返ってくる

関連用語

用語解説
REST API(レスト・エーピーアイ)従来主流のAPI設計。リソースごとにURLを使い分ける
クエリ(Query)データを取得するための命令文
ミューテーション(Mutation)データを変更(追加・更新・削除)する命令
スキーマ(Schema)GraphQL API の設計図。取得可能なデータの構造や型を定義
サブスクリプション(Subscription)データの変化をリアルタイムで通知する仕組み
エンドポイントAPIを呼び出すURL(GraphQLは通常 /graphql など1つ)
タイトルとURLをコピーしました