【初心者向け】RESTとGraphQLの違いとは?わかりやすく解説!

コンニチハ

パンに塗り塗りジャム太郎です!

今回のテーマは

REST」と「GraphQL」の違い

についてです。


1.はじめに

Web APIの設計を考えるとき、「REST」と「GraphQL」のどちらを使うべきか迷うことはありませんか?本記事では、それぞれの特徴や違いを初心者向けにわかりやすく解説します!


2.RESTとは?

REST(Representational State Transfer)は、API設計の一般的なスタイルの1つです。主に「エンドポイントごとに決められたデータを取得する」仕組みになっています。

特徴:

  • URLごとにデータの取得・更新が決まっている
  • HTTPメソッド(GET, POST, PUT, DELETEなど)を使う
  • シンプルで広く使われている

例:REST APIのリクエストとレスポンス

ユーザー情報を取得するリクエスト

bash
GET /users/1

返ってくるデータ

json
{
 ”id”: 1,
 ”name”: “Taro”,
 ”email”: “taro@example.com”
}

3.GraphQLとは?

GraphQLは、Facebookが開発したAPIのクエリ言語で、クライアントが「欲しいデータだけを指定して取得できる」仕組みになっています。

特徴:

  • 必要なデータをクエリで細かく指定できる
  • 1つのエンドポイントでさまざまなデータを取得できる
  • 過不足のないデータを取得できる

例:GraphQLのリクエストとレスポンス

ユーザー情報を取得するリクエスト

graphql
{
 user(id: 1) {
  name
  email
 }
}

返ってくるデータ

json
{
 ”data”: {
  ”user”: {
    “name”: “Taro”,
   ”email”: “taro@example.com”
  }
 }
}

4.違いを比較!

比較項目RESTGraphQL
データ取得方法固定のエンドポイントクエリで指定可能
リクエスト回数複数のリクエストが必要になることも1回で必要なデータを取得可能
データの過不足余計なデータが含まれることがある必要なデータだけ取得できる
学習コスト比較的簡単クエリ言語の学習が必要
キャッシュHTTPキャッシュが使いやすいクエリごとのキャッシュが必要

5.どっちを選ぶべき?

RESTが向いているケース

  • シンプルなAPIw作りたい
  • 既存のシステムと統合しやすくしたい
  • キャッシュを活用したい

GraphQLが向いているケース

  • クライアントごとに異なるデータが必要
  • モバイルアプリなどで通信量を最適化したい
  • 柔軟なデータ取得が必要

6.まとめ

選ぶ基準RESTGraphQL
シンプルなAPI×
柔軟なデータ取得×
キャッシュの活用×
学習コスト低い高い

どちらもメリット・デメリットがあるので、プロジェクトの要件に応じて選ぶことが大切です!


では、また次の記事で〜

投稿者 パンに塗り塗りジャム太郎

コンニチハ! Z世代のパンに塗り塗りジャム太郎です。 Web系自社開発企業でポンコツエンジニアをしております。 このブログでは最低1人にでもタメになってくれたらいいなぁ〜ぐらいの内容を発信しています。 お手柔らかによろしくお願いいたします。