3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

最近気になってたGraphQL

Last updated at Posted at 2025-01-21

こんにちは!
今回はAPIリクエストのGraphQLについて書いていきます。
耳にしたことはあるのですが、「今度調べよう」と後回しにしていたので、今回こそ初めの一歩を踏み出します!笑


APIとは

API(Application Programming Interface)は、アプリケーション間でデータや機能をやり取りするための仕組みです。例えば、フロントエンドとバックエンド間の通信に利用され、サーバーから必要なデータを取得したり、サーバーへデータを送信したりします。


1. RestAPI

  • 概要: 現在最も一般的に使用されるAPIリクエストの形式です。
  • 特徴:
    • URLごとにエンドポイントが異なる(例: /users, /posts)。
    • HTTPメソッド(GET、POST、PUT、DELETE)を使って操作を定義。
    • 汎用性が高く広く普及している。

RestAPIの例:

GET /users/123

このリクエストで、IDが123のユーザー情報を取得します。

2. GraphQL

  • 概要: 近年注目を集めているAPIのクエリ言語。
  • 特徴:
    • 1つのエンドポイントですべてのリクエストが可能(例: /graphql)。
    • 取得したいデータをリクエスト時に指定できるため、必要なデータだけを取得可能。
    • オーバーフェッチやアンダーフェッチ(データの取得不足)の問題を解決。
    • クライアント側で柔軟なリクエストが可能。
query {
  user(id: "123") {
    name
    email
    posts {
      title
    }
  }
}

このリクエストでは、IDが123のユーザーの名前、メールアドレス、投稿タイトルを1回のリクエストで取得します。

9698b3fbd466-20231122.png

GraphQLを使うメリット

  • 必要なデータだけ取得できる
    • クライアント側で取得データを指定できるため、効率的。
  • 複数のリクエストをまとめられる
    • 例えば、ユーザー情報とその投稿データを1回のリクエストで取得可能。
  • APIの拡張がしやすい
    • スキーマに基づいて設計されているため、新しいフィールドを追加しても既存のクエリに影響を与えにくい。

感想

GraphQLで、サーバーへのリクエストの時間もだいぶ短くなってパフォーマンスも上がりますね
早速使いたくなってきました〜!!
フロントがReactでバックエンドがNode.jsの時とか、flutterでも使えるってこの前聞いたので自分の分野にぴったりかもです。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?