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 定義、自動化生成代碼 開放式通訊、資源操作