Add go-kit client

This commit is contained in:
Manfred Touron 2016-12-25 19:50:30 +01:00
parent 4c53f8ebdd
commit f5d97d64c7
No known key found for this signature in database
GPG Key ID: 9CCF47DF1FD978A1
2 changed files with 58 additions and 1 deletions

View File

@ -0,0 +1,56 @@
package {{.File.Package}}_clientgrpc
import (
"github.com/go-kit/kit/log"
context "golang.org/x/net/context"
"google.golang.org/grpc"
grpctransport "github.com/go-kit/kit/transport/grpc"
"github.com/go-kit/kit/endpoint"
jwt "github.com/go-kit/kit/auth/jwt"
pb "{{cat .GoPWD "/" .DestinationDir | nospace | clean}}/pb"
endpoints "{{cat .GoPWD "/" .DestinationDir | nospace | clean}}/endpoints"
)
{{$file:=.File}}
func New(conn *grpc.ClientConn, logger log.Logger) pb.{{.File.Package | title}}ServiceServer {
{{range .Service.Method}}
{{if and (not .ServerStreaming) (not .ClientStreaming)}}
var {{.Name | lower}}Endpoint endpoint.Endpoint
{
{{.Name | lower}}Endpoint = grpctransport.NewClient(
conn,
"{{$file.Package}}.{{$file.Package | title}}Service",
"{{.Name}}",
Encode{{.Name}}Request,
Decode{{.Name}}Response,
pb.{{.Name}}Response{},
append([]grpctransport.ClientOption{}, grpctransport.ClientBefore(jwt.FromGRPCContext()))...,
).Endpoint()
}
{{end}}
{{end}}
return &endpoints.Endpoints {
{{range .Service.Method}}
{{if and (not .ServerStreaming) (not .ClientStreaming)}}
{{.Name | title}}Endpoint: {{.Name | lower}}Endpoint,
{{end}}
{{end}}
}
}
{{range .Service.Method}}
{{if and (not .ServerStreaming) (not .ClientStreaming)}}
func Encode{{.Name}}Request(_ context.Context, request interface{}) (interface{}, error) {
req := request.(*pb.{{.Name}}Request)
return req, nil
}
func Decode{{.Name}}Response(_ context.Context, grpcResponse interface{}) (interface{}, error) {
response := grpcResponse.(*pb.{{.Name}}Response)
return response, nil
}
{{end}}
{{end}}

View File

@ -6,9 +6,10 @@ import (
"fmt"
context "golang.org/x/net/context"
grpctransport "github.com/go-kit/kit/transport/grpc"
pb "{{cat .GoPWD "/" .DestinationDir | nospace | clean}}/pb"
endpoints "{{cat .GoPWD "/" .DestinationDir | nospace | clean}}/endpoints"
grpctransport "github.com/go-kit/kit/transport/grpc"
)
// avoid import errors