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.