A gRPC server in Go kit

Adding a gPRC server using Go kit is almost as easy as adding a JSON/HTTP server, like we did in the last section. In our generated code (in the pb folder), we were given the following pb.VaultServer type:

type VaultServer interface { 
  Hash(context.Context, *HashRequest)
    (*HashResponse, error) 
  Validate(context.Context, *ValidateRequest)
    (*ValidateResponse, error) 

This type is very similar to our own Service interface, except that it takes in generated request and response classes rather than raw arguments.

We'll start by defining a type that will implement the preceding interface. Add the following code to a new file called server_grpc.go:

package vault import ( "golang.org/x/net/context" grpctransport "github.com/go-kit/kit/transport/grpc" ...

Get Go: Design Patterns for Real-World Projects now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.