2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Web API の種類と違いについて

2
Posted at

はじめに

Web アプリを学んでいると必ず出てくる「API」。
中でも REST API / GraphQL / gRPC はよく比較されますが、違いがわかりにくい…と感じる方も多いと思います。

前回と重なる部分もあると思いますがご了承ください。
この記事では、それぞれの特徴や使いどころをまとめました。

そもそも Web API とは?

Web API とは、インターネット越しにアプリ同士がデータをやり取りするための仕組みのこと。
アプリ同士が会話するための「共通のルール」のようなものです。

よく使われる3つの API 方式

1. REST API(レスポンスAPI)

これは前回の投稿でざっくりと解説しました。
いちばん一般的で、Web開発の定番。
URL と HTTP メソッド(GET/POST/PUT/DELETE)を使ってデータをやり取りします。

特徴

  • シンプルで理解しやすい
  • どの言語でも使える
  • Web アプリやモバイルアプリで広く採用されている

向いている場面

  • ブログ、SNS、ECサイトなど一般的な Web サービス
  • バックエンド学習の最初の API としても最適

2. GraphQL(グラフキューエル)

Facebook が開発した柔軟なデータ取得ができる API。

REST と違い、必要なデータだけをまとめて取得できます。

特徴

  • 必要な項目だけ取得できる(=無駄な通信が減る)
  • フロントエンド側で柔軟にデータを指定できる
  • スキーマで型が定義されていて扱いやすい

向いている場面

  • 多くのデータを組み合わせて取得する SPA(React/Vue)
  • クライアント主導の柔軟なデータ要求があるサービス

3. gRPC(ジーアールピーシー)

Google が開発した高速通信に特化した API 方式。
RESTよりも圧倒的に軽くて速いのが特徴です。

特徴

  • バイナリ形式(Protocol Buffers)で超高速
  • マイクロサービス同士の通信によく使われる
  • 型が明確でエラーが起きにくい

向いている場面

  • 高速処理が必要なシステム
  • サーバー同士・マイクロサービス間の通信
  • IoTのような軽量通信が求められる環境

まとめ:どう使い分けるの?

API方式 強み よく使う場面
REST とにかくシンプルで広く使われる Webサービス全般
GraphQL 必要なデータだけ取得できる SPA/モバイルアプリ
gRPC 高速で型が強い マイクロサービス・IoT

結局どれを学べばいい?

最初に学ぶなら REST API 一択 です。

理由:

  • ほぼすべてのWebアプリがRESTベース
  • Laravel、Rails、Django など主要FWもRESTが基本
  • API の考え方を理解しやすい

REST が理解できると、GraphQL や gRPC にもスムーズに移れます。

さいごに

この記事が、APIの違いを理解するきっかけになれば嬉しいです。

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?