Add go-kit client
This commit is contained in:
parent
4c53f8ebdd
commit
f5d97d64c7
@ -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}}
|
@ -6,9 +6,10 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
context "golang.org/x/net/context"
|
context "golang.org/x/net/context"
|
||||||
|
grpctransport "github.com/go-kit/kit/transport/grpc"
|
||||||
|
|
||||||
pb "{{cat .GoPWD "/" .DestinationDir | nospace | clean}}/pb"
|
pb "{{cat .GoPWD "/" .DestinationDir | nospace | clean}}/pb"
|
||||||
endpoints "{{cat .GoPWD "/" .DestinationDir | nospace | clean}}/endpoints"
|
endpoints "{{cat .GoPWD "/" .DestinationDir | nospace | clean}}/endpoints"
|
||||||
grpctransport "github.com/go-kit/kit/transport/grpc"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// avoid import errors
|
// avoid import errors
|
||||||
|
Loading…
Reference in New Issue
Block a user