diff --git a/app.go b/app.go index 7500ea2..a886e51 100644 --- a/app.go +++ b/app.go @@ -123,12 +123,16 @@ func (s *Service) preStart(ctx context.Context) (err error) { } if s.opts.scope != nil { s.injectVars(s.opts.scope) - s.opts.scope.Init(ctx) + if err = s.opts.scope.Init(ctx); err != nil { + return + } s.refValues = append(s.refValues, reflect.ValueOf(s.opts.scope)) } if s.opts.serviceLoader != nil { s.injectVars(s.opts.serviceLoader) - s.opts.serviceLoader.Init(ctx) + if err = s.opts.serviceLoader.Init(ctx); err != nil { + return + } s.refValues = append(s.refValues, reflect.ValueOf(s.opts.serviceLoader)) } for _, srv := range s.opts.servers { @@ -137,9 +141,9 @@ func (s *Service) preStart(ctx context.Context) (err error) { return svr.Start(ctx) }) } - if s.opts.scope != nil { + if s.opts.serviceLoader != nil { s.errGroup.Go(func() error { - return s.opts.scope.Run(ctx) + return s.opts.serviceLoader.Run(ctx) }) } if s.opts.registry != nil { diff --git a/middleware/auth/jwt.go b/middleware/auth/jwt.go new file mode 100644 index 0000000..8832b06 --- /dev/null +++ b/middleware/auth/jwt.go @@ -0,0 +1 @@ +package auth diff --git a/middleware/transporter.go b/middleware/transporter.go deleted file mode 100644 index 24f2ba1..0000000 --- a/middleware/transporter.go +++ /dev/null @@ -1,5 +0,0 @@ -package middleware - -type Transporter interface { - -} diff --git a/pkg/protoc/command/command.pb.go b/pkg/proto/command/command.pb.go similarity index 97% rename from pkg/protoc/command/command.pb.go rename to pkg/proto/command/command.pb.go index a3c9404..07cd69b 100644 --- a/pkg/protoc/command/command.pb.go +++ b/pkg/proto/command/command.pb.go @@ -102,7 +102,7 @@ const file_command_proto_rawDesc = "" + "\x0eCommandOptions\x12\x12\n" + "\x04path\x18\x01 \x01(\tR\x04path\x12 \n" + "\vdescription\x18\x02 \x01(\tR\vdescription:S\n" + - "\acommand\x12\x1e.google.protobuf.MethodOptions\x18ц\x03 \x01(\v2\x14.aeus.CommandOptionsR\acommand\x88\x01\x01B-Z+git.nobla.cn/golang/aeus/pkg/protoc/commandb\x06proto3" + "\acommand\x12\x1e.google.protobuf.MethodOptions\x18ц\x03 \x01(\v2\x14.aeus.CommandOptionsR\acommand\x88\x01\x01B,Z*git.nobla.cn/golang/aeus/pkg/proto/commandb\x06proto3" var ( file_command_proto_rawDescOnce sync.Once diff --git a/pkg/protoc/command/command.proto b/pkg/proto/command/command.proto similarity index 86% rename from pkg/protoc/command/command.proto rename to pkg/proto/command/command.proto index 6d536b6..dc507e8 100644 --- a/pkg/protoc/command/command.proto +++ b/pkg/proto/command/command.proto @@ -4,7 +4,7 @@ package aeus; import "google/protobuf/descriptor.proto"; -option go_package = "git.nobla.cn/golang/aeus/pkg/protoc/command"; +option go_package = "git.nobla.cn/golang/aeus/pkg/proto/command"; message CommandOptions { diff --git a/pkg/proto/rest/rest.pb.go b/pkg/proto/rest/rest.pb.go new file mode 100644 index 0000000..40bd1fd --- /dev/null +++ b/pkg/proto/rest/rest.pb.go @@ -0,0 +1,269 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.6 +// protoc v5.29.3 +// source: rest.proto + +package rest + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type RestFieldOptions struct { + state protoimpl.MessageState `protogen:"open.v1"` + Gorm string `protobuf:"bytes,1,opt,name=gorm,proto3" json:"gorm,omitempty"` + Comment string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment,omitempty"` + Scenarios string `protobuf:"bytes,3,opt,name=scenarios,proto3" json:"scenarios,omitempty"` + Position string `protobuf:"bytes,4,opt,name=position,proto3" json:"position,omitempty"` + Format string `protobuf:"bytes,5,opt,name=format,proto3" json:"format,omitempty"` + Props string `protobuf:"bytes,6,opt,name=props,proto3" json:"props,omitempty"` + Rule string `protobuf:"bytes,7,opt,name=rule,proto3" json:"rule,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RestFieldOptions) Reset() { + *x = RestFieldOptions{} + mi := &file_rest_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RestFieldOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RestFieldOptions) ProtoMessage() {} + +func (x *RestFieldOptions) ProtoReflect() protoreflect.Message { + mi := &file_rest_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RestFieldOptions.ProtoReflect.Descriptor instead. +func (*RestFieldOptions) Descriptor() ([]byte, []int) { + return file_rest_proto_rawDescGZIP(), []int{0} +} + +func (x *RestFieldOptions) GetGorm() string { + if x != nil { + return x.Gorm + } + return "" +} + +func (x *RestFieldOptions) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *RestFieldOptions) GetScenarios() string { + if x != nil { + return x.Scenarios + } + return "" +} + +func (x *RestFieldOptions) GetPosition() string { + if x != nil { + return x.Position + } + return "" +} + +func (x *RestFieldOptions) GetFormat() string { + if x != nil { + return x.Format + } + return "" +} + +func (x *RestFieldOptions) GetProps() string { + if x != nil { + return x.Props + } + return "" +} + +func (x *RestFieldOptions) GetRule() string { + if x != nil { + return x.Rule + } + return "" +} + +type RestMessageOptions struct { + state protoimpl.MessageState `protogen:"open.v1"` + Table string `protobuf:"bytes,1,opt,name=table,proto3" json:"table,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RestMessageOptions) Reset() { + *x = RestMessageOptions{} + mi := &file_rest_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RestMessageOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RestMessageOptions) ProtoMessage() {} + +func (x *RestMessageOptions) ProtoReflect() protoreflect.Message { + mi := &file_rest_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RestMessageOptions.ProtoReflect.Descriptor instead. +func (*RestMessageOptions) Descriptor() ([]byte, []int) { + return file_rest_proto_rawDescGZIP(), []int{1} +} + +func (x *RestMessageOptions) GetTable() string { + if x != nil { + return x.Table + } + return "" +} + +var file_rest_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptorpb.FieldOptions)(nil), + ExtensionType: (*RestFieldOptions)(nil), + Field: 52118, + Name: "aeus.field", + Tag: "bytes,52118,opt,name=field", + Filename: "rest.proto", + }, + { + ExtendedType: (*descriptorpb.MessageOptions)(nil), + ExtensionType: (*RestMessageOptions)(nil), + Field: 52119, + Name: "aeus.opts", + Tag: "bytes,52119,opt,name=opts", + Filename: "rest.proto", + }, +} + +// Extension fields to descriptorpb.FieldOptions. +var ( + // ormable will cause orm code to be generated for this field + // + // optional aeus.RestFieldOptions field = 52118; + E_Field = &file_rest_proto_extTypes[0] +) + +// Extension fields to descriptorpb.MessageOptions. +var ( + // ormable will cause orm code to be generated for this message/object + // + // optional aeus.RestMessageOptions opts = 52119; + E_Opts = &file_rest_proto_extTypes[1] +) + +var File_rest_proto protoreflect.FileDescriptor + +const file_rest_proto_rawDesc = "" + + "\n" + + "\n" + + "rest.proto\x12\x04aeus\x1a google/protobuf/descriptor.proto\"\xbc\x01\n" + + "\x10RestFieldOptions\x12\x12\n" + + "\x04gorm\x18\x01 \x01(\tR\x04gorm\x12\x18\n" + + "\acomment\x18\x02 \x01(\tR\acomment\x12\x1c\n" + + "\tscenarios\x18\x03 \x01(\tR\tscenarios\x12\x1a\n" + + "\bposition\x18\x04 \x01(\tR\bposition\x12\x16\n" + + "\x06format\x18\x05 \x01(\tR\x06format\x12\x14\n" + + "\x05props\x18\x06 \x01(\tR\x05props\x12\x12\n" + + "\x04rule\x18\a \x01(\tR\x04rule\"*\n" + + "\x12RestMessageOptions\x12\x14\n" + + "\x05table\x18\x01 \x01(\tR\x05table:M\n" + + "\x05field\x12\x1d.google.protobuf.FieldOptions\x18\x96\x97\x03 \x01(\v2\x16.aeus.RestFieldOptionsR\x05field:O\n" + + "\x04opts\x12\x1f.google.protobuf.MessageOptions\x18\x97\x97\x03 \x01(\v2\x18.aeus.RestMessageOptionsR\x04optsB)Z'git.nobla.cn/golang/aeus/pkg/proto/restb\x06proto3" + +var ( + file_rest_proto_rawDescOnce sync.Once + file_rest_proto_rawDescData []byte +) + +func file_rest_proto_rawDescGZIP() []byte { + file_rest_proto_rawDescOnce.Do(func() { + file_rest_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_rest_proto_rawDesc), len(file_rest_proto_rawDesc))) + }) + return file_rest_proto_rawDescData +} + +var file_rest_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_rest_proto_goTypes = []any{ + (*RestFieldOptions)(nil), // 0: aeus.RestFieldOptions + (*RestMessageOptions)(nil), // 1: aeus.RestMessageOptions + (*descriptorpb.FieldOptions)(nil), // 2: google.protobuf.FieldOptions + (*descriptorpb.MessageOptions)(nil), // 3: google.protobuf.MessageOptions +} +var file_rest_proto_depIdxs = []int32{ + 2, // 0: aeus.field:extendee -> google.protobuf.FieldOptions + 3, // 1: aeus.opts:extendee -> google.protobuf.MessageOptions + 0, // 2: aeus.field:type_name -> aeus.RestFieldOptions + 1, // 3: aeus.opts:type_name -> aeus.RestMessageOptions + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 2, // [2:4] is the sub-list for extension type_name + 0, // [0:2] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_rest_proto_init() } +func file_rest_proto_init() { + if File_rest_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_rest_proto_rawDesc), len(file_rest_proto_rawDesc)), + NumEnums: 0, + NumMessages: 2, + NumExtensions: 2, + NumServices: 0, + }, + GoTypes: file_rest_proto_goTypes, + DependencyIndexes: file_rest_proto_depIdxs, + MessageInfos: file_rest_proto_msgTypes, + ExtensionInfos: file_rest_proto_extTypes, + }.Build() + File_rest_proto = out.File + file_rest_proto_goTypes = nil + file_rest_proto_depIdxs = nil +} diff --git a/pkg/proto/rest/rest.proto b/pkg/proto/rest/rest.proto new file mode 100644 index 0000000..d428fd6 --- /dev/null +++ b/pkg/proto/rest/rest.proto @@ -0,0 +1,33 @@ +syntax = "proto3"; + +package aeus; + +import "google/protobuf/descriptor.proto"; + +option go_package = "git.nobla.cn/golang/aeus/pkg/proto/rest"; + + +extend google.protobuf.FieldOptions { + // ormable will cause orm code to be generated for this field + RestFieldOptions field = 52118; +} + + +message RestFieldOptions { + string gorm = 1; + string comment = 2; + string scenarios= 3; + string position= 4; + string format = 5; + string props = 6; + string rule= 7; +} + +extend google.protobuf.MessageOptions { + // ormable will cause orm code to be generated for this message/object + RestMessageOptions opts = 52119; +} + +message RestMessageOptions { + string table = 1; +} diff --git a/transport/grpc/server.go b/transport/grpc/server.go index b1f12f5..7ffbba9 100644 --- a/transport/grpc/server.go +++ b/transport/grpc/server.go @@ -57,6 +57,8 @@ func (s *Server) unaryServerInterceptor() grpc.UnaryServerInterceptor { ctx = metadata.MergeContext(ctx, md, true) ctx = context.WithValue(ctx, requestValueContextKey{}, req) err = h(ctx) + // grpcmd.AppendToOutgoingContext(ctx, grpcmd.New(metadata.FromContext(ctx))) + // grpc.SetHeader() return } } diff --git a/types.go b/types.go index 896ea2a..621fa17 100644 --- a/types.go +++ b/types.go @@ -17,13 +17,13 @@ type ( // application scope interface. Scope interface { - Init(ctx context.Context) - Run(ctx context.Context) (err error) + Init(ctx context.Context) (err error) } // service loader interface. ServiceLoader interface { - Init(ctx context.Context) + Init(ctx context.Context) (err error) + Run(ctx context.Context) (err error) } // endpoint interface.