github.com/s7techlab/cckit@v0.10.5/gateway/service_def.go (about) 1 package gateway 2 3 import ( 4 "context" 5 6 "github.com/grpc-ecosystem/grpc-gateway/runtime" 7 "google.golang.org/grpc" 8 ) 9 10 type ( 11 RegisterHandlerFromEndpoint func(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) 12 13 ServiceDef struct { 14 name string 15 swagger []byte 16 Desc *grpc.ServiceDesc 17 Service interface{} 18 HandlerFromEndpointRegister RegisterHandlerFromEndpoint 19 } 20 21 Service interface { 22 Name() string 23 Swagger() []byte 24 GRPCDesc() *grpc.ServiceDesc 25 Impl() interface{} 26 GRPCGatewayRegister() func(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) 27 } 28 ) 29 30 func NewServiceDef(name string, swagger []byte, desc *grpc.ServiceDesc, service interface{}, registerHandler RegisterHandlerFromEndpoint) ServiceDef { 31 return ServiceDef{ 32 name: name, 33 swagger: swagger, 34 Desc: desc, 35 Service: service, 36 HandlerFromEndpointRegister: registerHandler, 37 } 38 } 39 40 func (s ServiceDef) Name() string { 41 return s.name 42 } 43 44 func (s ServiceDef) Swagger() []byte { 45 return s.swagger 46 } 47 48 func (s ServiceDef) GRPCDesc() *grpc.ServiceDesc { 49 return s.Desc 50 } 51 52 func (s ServiceDef) Impl() interface{} { 53 return s.Service 54 } 55 56 func (s ServiceDef) GRPCGatewayRegister() func(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { 57 return s.HandlerFromEndpointRegister 58 }