# JSON-RPC vs gRPC vs REST 技術比較表 比較三種常見的 API 通訊技術:**JSON-RPC**、**gRPC**、**REST**,涵蓋傳輸格式、效能、擴充性、適用場景等面向。 ## 📊 技術特性比較 | 特性 / 技術 | JSON-RPC | gRPC | REST | |----------------------|------------------------------------------|----------------------------------------------|-------------------------------------------| | 🔧 傳輸協定 | 通常使用 HTTP/HTTPS(POST) | HTTP/2(可支援 HTTP/1.1 降級) | HTTP/HTTPS(GET/POST/PUT/DELETE) | | 📦 資料格式 | JSON | Protocol Buffers(Protobuf) | JSON(可選 XML、YAML 等) | | 🧠 介面定義方式 | 無固定格式,靠慣例(如 `method`, `params`) | 需定義 `.proto` 檔案 | 自由定義 URL + HTTP 動詞 + DTO | | 🛠️ 工具支援度 | 中等,手動較多 | 高,自動生成 Client/Server stub | 高,原生支援於各大 Web 框架 | | 📈 效能 | 中等 | 高(快、低延遲) | 中等偏低(人類可讀) | | 📚 可讀性 | 高(JSON 格式) | 低(binary 格式) | 高(REST URL + JSON) | | 🔁 雙向通訊 / 推播 | 不原生支援 | 支援 bidirectional streaming | 不原生支援(需 WebSocket 等實作) | | 🌎 語言支援 | 廣泛(JSON 是標準格式) | 非常廣泛(官方支援多種語言) | 廣泛(HTTP/JSON 為萬國通用) | | 🔌 第三方整合 | 中等,需設計統一格式 | 較弱(需 client 生成碼) | 最佳(最適合公開 API) | | 🧩 結構自由度 | 高(可定義自有 method/action 格式) | 中(需配合 proto 規格) | 高(依 URL 與資源設計) | ## ✅ 適用場景建議 | 情境/需求 | 建議技術 | 理由 | |--------------------------------------|------------------|----------------------------------| | 自訂 RPC 框架、物件導向參數傳遞 | JSON-RPC | 結構自由、易整合自有系統如 ERP | | 高效能、微服務內部 RPC 通訊 | gRPC | 高速、內部通訊最佳選擇 | | 開放給第三方、前端或行動裝置使用 | REST | 簡單通用、無需額外工具 | | 需要串流(如影像、IoT、大量即時資料) | gRPC | 支援雙向/單向 Streaming | | 想省開發時間、快速上手 | REST / JSON-RPC | JSON 可讀性高,易除錯 |
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up