package tpl var NewFile = ` // Code generated by protoc-gen-slc. DO NOT EDIT. package server import ( "context" "net/http" "os" "strings" {import} "git.apinb.com/bsm-sdk/core/vars" "google.golang.org/grpc" "google.golang.org/grpc/reflection" "google.golang.org/protobuf/proto" gwRuntime "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" ) type Server struct { Grpc *grpc.Server Ctx context.Context Mux *gwRuntime.ServeMux } func New(addr string) *Server { srv := &Server{Ctx: context.Background(), Grpc: grpc.NewServer(), Mux: gwRuntime.NewServeMux( gwRuntime.WithForwardResponseRewriter(responseEnvelope), )} // register service to grpc.Server {register} reflection.Register(srv.Grpc) // 将服务注册到Gateway opts := []grpc.DialOption{grpc.WithInsecure()} {gw} // Register services swagger srv.RegisterSwagger() return srv } // RegisterSwagger 注册swagger func (s *Server) RegisterSwagger() { srvKey := strings.ToLower(vars.ServiceKey) s.Mux.HandlePath("GET", "/"+srvKey+".swagger.json", func(w http.ResponseWriter, r *http.Request, pathParams map[string]string) { w.Header().Set("Content-Type", "application/json") bytes, err := os.ReadFile("./swagger/" + srvKey + ".swagger.json") if err != nil { w.WriteHeader(http.StatusNotFound) w.Write([]byte(err.Error())) return } w.Write(bytes) return }) } // response envelope func responseEnvelope(_ context.Context, response proto.Message) (interface{}, error) { name := string(response.ProtoReflect().Descriptor().Name()) if name == "Status" || name == "Error" || name == "StatusReply" { return response, nil } return map[string]any{ "code": 0, "message": string(response.ProtoReflect().Descriptor().Name()), "result": response, }, nil } ` var Server = ` // Code generated by protoc-gen-slc. DO NOT EDIT. package server import ( "context" {import} ) type {service}Server struct { pb.Unimplemented{service}Server } func New{service}Server() *{service}Server { return &{service}Server{} } {method} ` var Method = ` {comment} func (s *{service}Server) {func}(ctx context.Context,in *pb.{input}) (*pb.{output},error) { return {serviceLower}.{func}(ctx, in) } `