GRPC JSON is a proxy which allows HTTP API tools like Postman to interact with gRPC servers.
- grpc+json codec must be enabled on the grpc server
- Postman must be configured to use the proxy
Configuration of the proxy and its dependencies is a three step process.
Register a JSON codec with the gRPC server. In Go, it can be automatically registered simple by adding the following import:
import _"github.com/jnewmano/grpc-json-proxy/codec"
- Run the grpc-json-proxy. Download pre-built binaries from https://github.com/jnewmano/grpc-json-proxy/releases/ or build from source:
go get -u github.com/jnewmano/grpc-json-proxy
grpc-json-proxy
- Configure Postman to send requests through the proxy. Postman -> Preferences -> Proxy -> Global Proxy
Proxy Server: localhost 7001
Setup your Postman gRPC request with the following:
- Set request method to Post .
- Set the URL to http://{{ grpc server address}}/{{proto package}}.{{proto service}}/{{method}} Always use http, proxy will establish a secure connection to the gRPC server.
- Set the Content-Type header to application/grpc+json .
- Optionally add a Grpc-Insecure header set to true for an insecure connection.
- Set the request body to appropriate JSON for the message. For reference, generated Go code includes JSON tags on the generated message structs.
For example:
Inspired by Johan Brandhorst's grpc-json