Codebase list golang-github-go-kit-kit / 323488f
Use grpc transport in addsvc example client This change replaces the custom grpc bindings in the addsvc example with usage of the transport.grcp client. Change 1/2 to resolve issue #217. Jupp Müller authored 8 years ago Jupp Müller committed 8 years ago
3 changed file(s) with 69 addition(s) and 12 deletion(s). Raw diff Collapse all Expand all
33 "golang.org/x/net/context"
44 "google.golang.org/grpc"
55
6 "github.com/go-kit/kit/endpoint"
67 "github.com/go-kit/kit/examples/addsvc/pb"
78 "github.com/go-kit/kit/examples/addsvc/server"
89 "github.com/go-kit/kit/log"
10 grpctransport "github.com/go-kit/kit/transport/grpc"
911 )
1012
1113 // New returns an AddService that's backed by the provided ClientConn.
1214 func New(ctx context.Context, cc *grpc.ClientConn, logger log.Logger) server.AddService {
13 return client{ctx, pb.NewAddClient(cc), logger}
15 return client{
16 Context: ctx,
17 Logger: logger,
18 sum: grpctransport.NewClient(cc, "Add", "sum", encodeSumRequest, decodeSumResponse, pb.SumReply{}).Endpoint(),
19 concat: grpctransport.NewClient(cc, "Add", "concat", encodeConcatRequest, decodeConcatResponse, pb.ConcatReply{}).Endpoint(),
20 }
1421 }
1522
1623 type client struct {
1724 context.Context
18 pb.AddClient
1925 log.Logger
26 sum endpoint.Endpoint
27 concat endpoint.Endpoint
2028 }
2129
2230 // TODO(pb): If your service interface methods don't return an error, we have
3543 // important.
3644
3745 func (c client) Sum(a, b int) int {
38 request := &pb.SumRequest{
39 A: int64(a),
40 B: int64(b),
46 request := &server.SumRequest{
47 A: a,
48 B: b,
4149 }
42 reply, err := c.AddClient.Sum(c.Context, request)
50 reply, err := c.sum(c.Context, request)
4351 if err != nil {
4452 c.Logger.Log("err", err) // Without an error return parameter, we can't do anything else...
4553 return 0
4654 }
47 return int(reply.V)
55
56 r := reply.(server.SumResponse)
57 return r.V
4858 }
4959
5060 func (c client) Concat(a, b string) string {
51 request := &pb.ConcatRequest{
61 request := &server.ConcatRequest{
5262 A: a,
5363 B: b,
5464 }
55 reply, err := c.AddClient.Concat(c.Context, request)
65 reply, err := c.concat(c.Context, request)
5666 if err != nil {
57 c.Logger.Log("err", err)
67 c.Logger.Log("err", err) // Without an error return parameter, we can't do anything else...
5868 return ""
5969 }
60 return reply.V
70
71 r := reply.(server.ConcatResponse)
72 return r.V
6173 }
0 package grpc
1
2 import (
3 "github.com/go-kit/kit/examples/addsvc/pb"
4 "github.com/go-kit/kit/examples/addsvc/server"
5 "golang.org/x/net/context"
6 )
7
8 func encodeSumRequest(ctx context.Context, req interface{}) (interface{}, error) {
9 sumRequest := req.(server.SumRequest)
10
11 pbRequest := &pb.SumRequest{
12 A: int64(sumRequest.A),
13 B: int64(sumRequest.B),
14 }
15 return pbRequest, nil
16 }
17
18 func encodeConcatRequest(ctx context.Context, req interface{}) (interface{}, error) {
19 concatRequest := req.(server.ConcatRequest)
20
21 pbRequest := &pb.ConcatRequest{
22 A: concatRequest.A,
23 B: concatRequest.B,
24 }
25 return pbRequest, nil
26 }
27
28 func decodeSumResponse(ctx context.Context, resp interface{}) (interface{}, error) {
29 pbResponse := resp.(pb.SumReply)
30
31 sumResponse := &server.SumResponse{
32 V: int(pbResponse.V),
33 }
34 return sumResponse, nil
35 }
36
37 func decodeConcatResponse(ctx context.Context, resp interface{}) (interface{}, error) {
38 pbResponse := resp.(pb.ConcatReply)
39
40 concatResponse := &server.ConcatResponse{
41 V: pbResponse.V,
42 }
43 return concatResponse, nil
44 }
5252 var svc server.AddService
5353 switch *transport {
5454 case "grpc":
55 cc, err := grpc.Dial(*grpcAddr)
55 cc, err := grpc.Dial(*grpcAddr, grpc.WithInsecure())
5656 if err != nil {
5757 logger.Log("err", err)
5858 os.Exit(1)