跳到內容

gRPC

在樹狀結構中按右鍵 ▸ 新增 ▸ gRPC 請求

一個 gRPC 分頁:伺服器位址、呼叫類型「Unary」、解析後的服務/方法路徑、以 JSON 表示的請求訊息,以及中繼資料

欄位作用
URL伺服器的 host:port
服務 / 方法被呼叫的服務與 RPC
呼叫類型unaryserver-streamclient-streambidirectional-stream
請求訊息訊息本身,以 JSON 表示
中繼資料隨呼叫一併送出的鍵/值配對(憑證資訊就走這裡)

有三種可能的來源,依優先順序排列:

  1. 透過伺服器反射取得的描述元集合 — 這正是反射匯入所建立的內容,而且它的優先權 高於其他來源;
  2. 行內的 .proto 內容,儲存在專案裡;
  3. 磁碟上某個 .proto 的路徑

第一種選項帶來一個很重要的實務結果:透過反射匯入的請求即使離線也能繼續運作, 不需要伺服器可連線。

在 gRPC 匯入對話框中填入 host:port:Restorm 會查詢反射服務、載入描述元,並建立整棵 樹狀結構 — 每個服務一個資料夾、每個 RPC 一個請求,並附上一則範例訊息。

重新連線到同一個位址會被辨識為一次重新同步,Restorm 會更新既有的樹狀結構,而不會 把它複製一份。

如果伺服器沒有實作反射,Restorm 會明確告知:這時請改為匯入 .proto。請參閱 匯入 gRPC .proto

共有三種傳輸方式可用:

傳輸方式何時使用
grpc(預設)HTTP/2 上的原生 gRPC
grpc-web伺服器位於 gRPC-Web 代理之後
connectConnect-RPC 伺服器

在三種串流模式下,回應面板都會即時陸續顯示訊息。在 情境裡,請使用 gRPC connectgRPC send關閉 gRPC 連線 這幾個動作:連線會在各個節點之間保持開啟,每收到一則訊息就發出一個 事件,而關閉動作則會執行用戶端的半關閉。

Restorm 能託管一個 gRPC 模擬伺服器:一份模擬方法的清單,每個方法各有自己的回應訊息 (串流則用 JSON 陣列)、狀態碼、結尾中繼資料,或是一段腳本。伺服器反射預設就會公開, TLS 則可透過 PEM 格式的憑證與金鑰設定。請參閱 模擬 gRPC 服務

十四個目標:grpcurlgrpc_cli、gRPC-Web 版的 grpcurl、Connect-RPC 版的 curl、 JavaScript 與 TypeScript(@grpc/grpc-js)、Python(grpcio)、Go、Java(grpc-java)、 C#(Grpc.Net.Client)、Ruby、Rust(tonic)、Kotlin(grpc-kotlin)、Swift (grpc-swift)。