Skip to main content

gRPC

  • You can make gRPC requests in Kulala just as you would make HTTP requests.

Usage

Dependencies

Ensure you have grpcurl installed to use this feature. You can find it here: gRPCurl.

Making a gRPC Request

To make a gRPC request, use the following format:

# @grpc-global-flags
# @grpc-flags
GRPC flags address command service.method

For example:

# @grpc-global-import-path ../protos 
# @grpc-global-proto helloworld.proto
GRPC localhost:50051 helloworld.Greeter/SayHello
Content-Type: application/json

{"name": "world"}

###

# @grpc-plaintext
GRPC localhost:50051 describe helloworld.Greeter

###

# @grpc-v
GRPC localhost:50051 list
# service.method is optional when using a command list|describe

###

# @grpc-protoset my-protos.bin
GRPC helloworld.Greeter/SayHello
# address is optional when using proto files

Flags

Flags can be set through metadata either locally per request or globally per buffer. Use the following formats:

  • Local flags: @grpc-.. apply for current request only.
  • Global flags: @grpc-global-.. apply for all requests in the buffer. Global settings will persist until the buffer is closed or globals are cleared with <leaderRx>.

Variables

Just as with HTTP requests, you can use variables in gRPC requests. For example:

@address=localhost:50051
@service=helloworld.Greeter
@flags=-import-path ../protos -proto helloworld.proto -- [!] flags must be prefixed with `-`
GRPC {{flags}} {{address}} {{service}}/SayHello
Content-Type: application/json

< /path/to/file.json
warning

Flags set in variables override flags set in metatadata, which in turn override global flags. In order for global flags to take effect, the request where they are defined must be run at least once.