github.com/yoogoc/kratos-scaffold@v0.0.0-20240402032722-a538b3c18955/project_generator/resources/server.grpc.go.tmpl (about)

     1  {{- /*gotype: github.com/yoogoc/kratos-scaffold/project_generator.ServerTmpl*/ -}}
     2  package server
     3  
     4  import (
     5  	"github.com/go-kratos/kratos/v2/log"
     6  	"github.com/go-kratos/kratos/v2/middleware/logging"
     7  	"github.com/go-kratos/kratos/v2/middleware/recovery"
     8  	"github.com/go-kratos/kratos/v2/transport/grpc"
     9  	"{{.AppPkgPath}}/internal/conf"
    10  )
    11  
    12  // NewGRPCServer new a gRPC server.
    13  func NewGRPCServer(c *conf.Server, logger log.Logger) *grpc.Server {
    14  	var opts = []grpc.ServerOption{
    15  		grpc.Middleware(
    16  			recovery.Recovery(),
    17  			// tracing.Server(
    18  			// 	tracing.WithTracerProvider(tp)),
    19  			logging.Server(logger),
    20  		),
    21  	}
    22  	if c.Grpc.Network != "" {
    23  		opts = append(opts, grpc.Network(c.Grpc.Network))
    24  	}
    25  	if c.Grpc.Addr != "" {
    26  		opts = append(opts, grpc.Address(c.Grpc.Addr))
    27  	}
    28  	if c.Grpc.Timeout != nil {
    29  		opts = append(opts, grpc.Timeout(c.Grpc.Timeout.AsDuration()))
    30  	}
    31  	srv := grpc.NewServer(opts...)
    32  	return srv
    33  }