こんにちは!
今回はAPIリクエストのGraphQLについて書いていきます。
耳にしたことはあるのですが、「今度調べよう」と後回しにしていたので、今回こそ初めの一歩を踏み出します!笑
APIとは
API(Application Programming Interface)は、アプリケーション間でデータや機能をやり取りするための仕組みです。例えば、フロントエンドとバックエンド間の通信に利用され、サーバーから必要なデータを取得したり、サーバーへデータを送信したりします。
1. RestAPI
- 概要: 現在最も一般的に使用されるAPIリクエストの形式です。
-
特徴:
- URLごとにエンドポイントが異なる(例:
/users
,/posts
)。 - HTTPメソッド(GET、POST、PUT、DELETE)を使って操作を定義。
- 汎用性が高く広く普及している。
- URLごとにエンドポイントが異なる(例:
RestAPIの例:
GET /users/123
このリクエストで、IDが123のユーザー情報を取得します。
2. GraphQL
- 概要: 近年注目を集めているAPIのクエリ言語。
-
特徴:
- 1つのエンドポイントですべてのリクエストが可能(例: /graphql)。
- 取得したいデータをリクエスト時に指定できるため、必要なデータだけを取得可能。
- オーバーフェッチやアンダーフェッチ(データの取得不足)の問題を解決。
- クライアント側で柔軟なリクエストが可能。
query {
user(id: "123") {
name
email
posts {
title
}
}
}
このリクエストでは、IDが123のユーザーの名前、メールアドレス、投稿タイトルを1回のリクエストで取得します。
GraphQLを使うメリット
- 必要なデータだけ取得できる
- クライアント側で取得データを指定できるため、効率的。
- 複数のリクエストをまとめられる
- 例えば、ユーザー情報とその投稿データを1回のリクエストで取得可能。
- APIの拡張がしやすい
- スキーマに基づいて設計されているため、新しいフィールドを追加しても既存のクエリに影響を与えにくい。
感想
GraphQLで、サーバーへのリクエストの時間もだいぶ短くなってパフォーマンスも上がりますね
早速使いたくなってきました〜!!
フロントがReactでバックエンドがNode.jsの時とか、flutterでも使えるってこの前聞いたので自分の分野にぴったりかもです。