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

| 欄位 | 作用 |
|---|---|
| URL | 伺服器的 host:port |
| 服務 / 方法 | 被呼叫的服務與 RPC |
| 呼叫類型 | unary、server-stream、client-stream、bidirectional-stream |
| 請求訊息 | 訊息本身,以 JSON 表示 |
| 中繼資料 | 隨呼叫一併送出的鍵/值配對(憑證資訊就走這裡) |
服務定義從哪裡來
Section titled “服務定義從哪裡來”有三種可能的來源,依優先順序排列:
- 透過伺服器反射取得的描述元集合 — 這正是反射匯入所建立的內容,而且它的優先權 高於其他來源;
- 行內的
.proto內容,儲存在專案裡; - 磁碟上某個
.proto的路徑。
第一種選項帶來一個很重要的實務結果:透過反射匯入的請求即使離線也能繼續運作, 不需要伺服器可連線。
透過反射匯入
Section titled “透過反射匯入”在 gRPC 匯入對話框中填入 host:port:Restorm 會查詢反射服務、載入描述元,並建立整棵
樹狀結構 — 每個服務一個資料夾、每個 RPC 一個請求,並附上一則範例訊息。
重新連線到同一個位址會被辨識為一次重新同步,Restorm 會更新既有的樹狀結構,而不會 把它複製一份。
如果伺服器沒有實作反射,Restorm 會明確告知:這時請改為匯入 .proto。請參閱
匯入 gRPC .proto。
共有三種傳輸方式可用:
| 傳輸方式 | 何時使用 |
|---|---|
grpc(預設) | HTTP/2 上的原生 gRPC |
grpc-web | 伺服器位於 gRPC-Web 代理之後 |
connect | Connect-RPC 伺服器 |
在三種串流模式下,回應面板都會即時陸續顯示訊息。在 情境裡,請使用 gRPC connect、gRPC send 與 關閉 gRPC 連線 這幾個動作:連線會在各個節點之間保持開啟,每收到一則訊息就發出一個 事件,而關閉動作則會執行用戶端的半關閉。
Restorm 能託管一個 gRPC 模擬伺服器:一份模擬方法的清單,每個方法各有自己的回應訊息 (串流則用 JSON 陣列)、狀態碼、結尾中繼資料,或是一段腳本。伺服器反射預設就會公開, TLS 則可透過 PEM 格式的憑證與金鑰設定。請參閱 模擬 gRPC 服務。
十四個目標:grpcurl、grpc_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)。