Skip to content

gRPC

Right-click in the tree ▸ Add ▸ gRPC request.

A gRPC tab: the server address, the "Unary" call type, the resolved service/method path, the request message in JSON and the metadata

FieldRole
URLThe server’s host:port
Service / MethodThe service and the RPC being called
Call typeunary, server-stream, client-stream, bidirectional-stream
Request messageThe message, in JSON
MetadataThe key / value pairs sent with the call (this is where credentials travel)

Three possible sources, in order of precedence:

  1. a descriptor set obtained through server reflection — that is what a reflection import produces, and it wins over the rest;
  2. the inline .proto content, stored in the project;
  3. a path to a .proto on disk.

The first option has an important practical consequence: a request imported by reflection keeps working offline, without the server being reachable.

From the gRPC import modal, give the host:port: Restorm queries the reflection service, loads the descriptors and builds the tree — one folder per service, one request per RPC, with a sample message.

Reconnecting to the same address is recognised as a re-synchronisation and updates the existing tree instead of duplicating it.

If the server does not implement reflection, Restorm says so explicitly: import the .proto instead. See Importing a gRPC .proto.

Three transports are available:

TransportWhen to use it
grpc (default)Native gRPC over HTTP/2
grpc-webServer behind a gRPC-Web proxy
connectConnect-RPC server

For all three streaming modes, the response panel shows messages as they arrive. In a scenario, use the gRPC connect, gRPC send and gRPC close actions: the connection stays open between boxes, each message received emits an event, and closing performs the client-side half-close.

Restorm can host a mock gRPC server: a list of mocked methods, each with its response message (a JSON array for a stream), its status code, its trailing metadata, or a script. Server reflection is exposed by default, and TLS is configurable with a PEM-format certificate and key. See Mocking a gRPC API.

Fourteen targets: grpcurl, grpc_cli, grpcurl in gRPC-Web mode, curl in Connect-RPC mode, JavaScript and TypeScript (@grpc/grpc-js), Python (grpcio), Go, Java (grpc-java), C# (Grpc.Net.Client), Ruby, Rust (tonic), Kotlin (grpc-kotlin), Swift (grpc-swift).