🔌

これだけ読めばわかる!API / REST / JSON-RPC 入門まとめ(初心者向け)

に公開

APIまわりを体系的にキャッチアップしたい人向けに、REST・JSON-RPC の要点を できるだけ分かりやすく まとめました。Web API の基本から、RPC系プロトコルとの違いまで一気に理解できます。

🧩 APIとは?(まずここから)

API(Application Programming Interface) は、
「アプリケーションが外部サービスの機能を呼び出すための窓口」です。

例えば:

  • クライアント → 「このデータがほしい!」とリクエスト
  • サーバ → 内容を受け取り、結果をレスポンス

という流れ。

つまり API は、外部のサービス内の情報や機能をプログラムから扱える仕組みです。

Web 開発においては、ほぼすべての API が HTTP/HTTPS を利用する Web API になっています。

🌐 Web APIとは?

Web API = HTTP/HTTPS を使って機能を呼び出す API

  • URL にアクセスしてデータを取得
  • JSON 形式でレスポンスを返す
  • 多くのサービス(Twitter, Google Maps, GitHubなど)が提供

現在、API と言えば Web API のことを指すのが一般的です。

🧱 REST APIとは?

Web API の中でも最も一般的なのが REST API(RESTful API)

REST は REpresentational State Transfer の略で、
API を分かりやすく、拡張しやすくする設計ルールです。

REST を支える4つの原則:

原則 内容
アドレス可能性 すべての情報を一意の URL で表す
ステートレス 各リクエストは独立(セッション保持しない)
接続性(リンク性) 返すデータに別リソースへのリンクを含められる
統一インターフェース HTTPメソッドで操作を統一(GET/POST/PUT/DELETE)

REST API の例:

GET /users        # ユーザー一覧取得
POST /users       # ユーザー作成
GET /users/123    # ID=123のユーザー取得
PUT /users/123    # 更新
DELETE /users/123 # 削除

👆 リソース(データ)をURLで表し、HTTPメソッドで操作する のが REST の特徴。

🔌 JSON-RPCとは?

次は REST とは別の考え方である RPC 系。

JSON-RPC = JSON 形式で遠隔手続きを呼び出すためのプロトコル

RPC(Remote Procedure Call)は、

  • 「関数を呼ぶように API を実行する」
  • 「return 値が返ってくる」

という “プログラム的” な呼び出し方を採用します。

JSON-RPC リクエスト例

{
  "jsonrpc": "2.0",
  "method": "tasks/list",
  "params": {},
  "id": 1
}

返り値:

{
  "result": [...],
  "id": 1
}

REST と違い、URL ではなく メソッド名で操作する のがポイント。

🎯 JSON-RPC の特徴まとめ

良いところ

  • 軽量でシンプル
  • 伝送方式を選ばない(HTTP/WebSocket/TCPなど)
  • 実装が簡単
  • Ethereum などブロックチェーンで広く使われる

注意点

  • REST ほど広く一般化していない
  • 「関数呼び出し」前提なので、リソース指向設計とは合わない
  • クライアントとサーバで密結合になりやすい

⚖️ REST / JSON-RPC / gRPC の比較(ざっくり把握)

項目 REST API JSON-RPC gRPC
モデル リソース操作 関数呼び出し 関数呼び出し
データ形式 JSON JSON Protocol Buffers
通信 HTTP 任意 HTTP/2
特徴 Webに最適・標準 軽量・単純 高速・型安全
向いている用途 Webサービス 内部通信 / ブロックチェーン マイクロサービス

直感的にまとめると👇

  • REST:Web のために最適化された “公式ルール”
  • JSON-RPC:軽くて手軽な “メソッド呼び出しAPI”
  • gRPC:高速通信が必要な “業務や内部向けAPI”

📌 まとめ

  • API は「サービスの機能を外部から操作するための入口」
  • 現代Webでは「API=Web API」
  • REST は URL ベースの標準的な設計思想
  • JSON-RPC はメソッド呼び出し型で軽量
  • gRPC は高速+型安全でマイクロサービス向き

REST と JSON-RPC は “使いどころ” が違うだけで、どちらが優れているという話ではありません。

用途に応じて適切なプロトコルを選ぶことが重要です。

Discussion