API models: gRPC | OpenAPI | REST

What are the differences

Posted by Eirik on 13 Mar, 2024

gRPC

適合需要高效率、強類型、低延遲的系統,特別適用於微服務架構的內部通訊。

OpenAPI

主要用於定義和文檔化 API,提供簡單的工具來自動化生成代碼和文檔。

REST

經典的網路服務架構,使用 HTTP 協議進行資源操作,適用於各種不同類型的應用和系統。

Comparison

特性 gRPC OpenAPI (Swagger) REST
協議 HTTP/2 HTTP/HTTPS HTTP/HTTPS
格式 Protocol Buffers (protobuf) JSON/YAML JSON/XML
傳輸方式 二進位 文本 文本
適用性 多語言 多語言 任何語言
通訊效率 高 一般 一般
擴展性 好 一般 一般
開發體驗 略為複雜 簡單 簡單
安全性 高 一般 一般
適用範圍 微服務、內部系統通訊 API 定義、文檔化 網路服務、簡單通訊
主要用途 高效率、強類型、低延遲 API 定義、自動化生成代碼 開放式通訊、資源操作