これだけ読めばわかる!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