API Academy
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
HomePetstore APIExplore more APIs
HomePetstore APIExplore more APIs
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
  1. Advanced API Technologies
  • 歡迎
  • 目錄
  • API 學院
    • Get Started
      • 什麼是 API?
      • API 如何運作?
      • 如何呼叫 API?
      • 如何閱讀 API 文件?
      • 章節總結
    • API Fundamentals
      • API 基礎知識:概覽
      • 方法與路徑
      • 參數
      • 請求 Body
      • 回應
      • API 規格與 OAS
      • 章節總結
    • Working with APIs
      • 使用 API:概覽
      • 根據規格發送請求
      • 環境與變數
      • 串聯多個端點
      • 處理 Auth
      • 處理 API 簽名
      • 腳本介紹
      • 章節總結
    • Mocking APIs
      • Mocking API:概覽
      • Smart Mock
      • Mock 預期結果
      • Cloud Mock
      • Mock 腳本
      • 章節總結
    • Designing APIs
      • 設計 API:概覽
      • API 設計介紹
      • 建立您的第一個 API 專案
      • 分析需求並規劃您的 API
      • 設計資料模型
      • 設計端點
      • 使用組件與可重用性
      • 設定與 Auth
      • API 設計指南
      • 章節總結
    • Developing APIs
      • 開發 API:概覽
      • 設定:安裝您的 AI 程式碼助手
      • 快速入門:30 分鐘內從規格到運行的 API
      • 了解生成的程式碼
      • 使用 Apidog 測試您的 API
      • 部署:將您的 API 上線
      • 章節總結
    • Testing APIs
      • 測試 API:概覽
      • 快速入門:您的第一個測試場景
      • 整合測試與資料傳遞
      • 動態值
      • 斷言與驗證
      • 流程控制:If, For, ForEach
      • 資料驅動測試
      • 性能測試
      • 測試報告與分析
      • CI/CD 整合
      • 排程任務與自動化
      • 進階測試策略
      • 章節總結
    • API Documentations
      • API 文件:概覽
      • 發布您的第一個 API 文件
      • 自訂文件外觀
      • 給消費者的互動功能
      • 進階發布設定
      • 管理 API 版本
      • 章節總結
    • Advanced API Technologies
      • 進階 API 技術:概覽
      • GraphQL
      • gRPC
      • WebSocket
      • Socket.IO
      • Server-Sent Events
      • SOAP
      • 章節總結
    • API Lifecycle
      • API 生命周期:概覽
      • API 生命周期的階段
      • API 治理
      • API 安全最佳實踐
      • 監控與分析
      • API 版本策略
      • API 的未來
      • 章節總結
    • API Security
      • API 安全性:概覽
      • API 安全性基礎知識
      • 身份驗證 vs. 授權
      • 了解 OAuth 2.0 和 OpenID Connect
      • JSON Web Tokens (JWT)
      • OWASP API 安全 Top 10
      • 加密與 HTTPS
      • 章節總結
    • API Tools
      • API 工具:概覽
      • API 工具的演變
      • API Clients
      • 命令列工具 (cURL, HTTPie)
      • API 設計和文件工具
      • API Mocking 工具
      • API 測試工具
      • 一體化 API 平台
      • 章節總結
    • API Gateway
      • API Gateway:概覽
      • 什麼是 API Gateway?
      • API Gateway 的關鍵功能
      • API Gateway vs 負載平衡器 vs 服務網格
      • 流行 API Gateway 解決方案
      • BFF (Backend for Frontend) 模式
      • 章節總結
HomePetstore APIExplore more APIs
HomePetstore APIExplore more APIs
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
  1. Advanced API Technologies

gRPC

gRPC (Google Remote Procedure Call) 是一個開源的高效能 RPC 框架,運行在 HTTP/2 之上。它由 Google 於 2015 年發布。
REST API 通常在 HTTP/1.1 上使用 JSON(一種基於文字的格式)。相比之下,gRPC 使用 Protocol Buffers (Protobuf),一種二進位格式,來序列化資料。這導致了更小的負載和更快的處理,使 gRPC 非常適合微服務之間的低延遲通訊。

核心概念#

1.
Protocol Buffers (Protobuf):用於定義服務 API 和負載訊息的介面定義語言 (IDL)。
2.
HTTP/2 傳輸:啟用多工(透過單一連線進行多個請求)、標頭壓縮和伺服器推送。
3.
嚴格契約:.proto 檔案充當單一真實來源 (source of truth)。客戶端和伺服器程式碼都從此定義生成。
4.
串流:原生支援雙向串流資料。

程式碼範例:.proto 契約#

一切都從定義檔案開始:

4 種通訊模式#

1.
Unary RPC:客戶端發送單一請求並獲得單一回應。(類似於標準函式呼叫或 REST 請求)。
2.
伺服器串流 (Server Streaming):客戶端發送一個請求並接收一連串訊息。客戶端持續讀取直到沒有更多訊息。
3.
客戶端串流 (Client Streaming):客戶端將一連串訊息寫入伺服器。完成後,伺服器發送單一回應。
4.
雙向串流 (Bidirectional Streaming):雙方使用讀寫串流發送一連串訊息。這兩個串流獨立運作。

比較:gRPC vs. REST#

功能RESTgRPC
協定HTTP/1.1 (通常)HTTP/2
負載JSON / XML (文字)Protobuf (二進位)
契約可選 (OpenAPI)必須 (.proto)
串流有限 (分塊傳輸)原生 (雙向)
瀏覽器支援通用有限 (需要 gRPC-Web proxy)
使用案例公共 API, Web 客戶端內部微服務, 行動應用程式

在 Apidog 中使用 gRPC#

Apidog 透過提供使用者友善的介面,簡化了測試二進位 gRPC 端點的複雜性。

1. 建立 gRPC 專案#

選擇 New Project -> gRPC Project。Apidog 單獨處理 gRPC 以針對其特定生命週期進行最佳化。

2. 匯入定義 (.proto)#

您不需要在 gRPC 中手動輸入端點。
1.
點擊 + 按鈕。
2.
Import .proto:上傳您的本地檔案。
3.
Server Reflection:如果您的伺服器支援反射,輸入 URL,Apidog 將自動發現可用的服務。
apidog-grpc-03.gif

3. 先調用方法#

Apidog 自動將您的 JSON 輸入轉換為 Protobuf 二進位。
從側邊欄選擇方法。
在 JSON body 編輯器中輸入參數。
點擊 Invoke。
對於串流方法,Timeline View 是必不可少的。它顯示發送和接收訊息的確切順序,允許您即時除錯競爭條件或時序問題。
查看詳情 gRPC

關鍵收穫#

高效能:gRPC 使用 Protocol Buffers(二進位)和 HTTP/2 進行低延遲、高吞吐量通訊。
嚴格契約:.proto 檔案是真實來源,允許為客戶端和伺服器生成程式碼。
串流:原生支援伺服器、客戶端和雙向串流,使其非常適合即時資料來源。
Apidog 支援:Apidog 為您處理二進位編碼複雜性,讓您使用簡單的 JSON 輸入測試 gRPC。
繼續閱讀 → WebSocket
Modified at 2025-12-29 09:35:19
Previous
GraphQL
Next
WebSocket
Built with