Tech Blog

プログラミングと技術の情報サイト

GraphQLの基本とREST APIとの違い

GraphQLの基本とREST APIとの違い

GraphQLはFacebookが開発したAPIのクエリ言語です。 クライアントが必要なデータだけを指定して取得できるため、 オーバーフェッチやアンダーフェッチの問題を解消できます。

RESTとGraphQLの比較

  • REST: URLがリソースを表す。複数エンドポイントが必要
  • GraphQL: 単一エンドポイント。クエリで取得データを指定

クエリの書き方

# 必要なフィールドだけ取得
query {
  user(id: "1") {
    name
    email
    posts {
      title
      createdAt
    }
  }
}

ミューテーション(書き込み)

mutation {
  createPost(input: {
    title: "新しい記事"
    body: "本文..."
    authorId: "1"
  }) {
    id
    title
    createdAt
  }
}

スキーマ定義

type User {
  id: ID!
  name: String!
  email: String!
  posts: [Post!]!
}

type Post {
  id: ID!
  title: String!
  body: String!
  author: User!
  createdAt: String!
}

GraphQLに向くケース

  • モバイルアプリなど通信量を最小化したいクライアント
  • 複数チームが異なるデータを必要とするフロントエンド
  • 頻繁にUIが変わり、API変更コストを下げたい場合

まとめ

GraphQLはRESTの代替ではなく補完的なアプローチです。 シンプルなCRUDにはRESTが、複雑なデータ要件にはGraphQLが向いています。

← 記事一覧に戻る