From cb23d9e80ddd405daee4dae0b988fd401a2d8b33 Mon Sep 17 00:00:00 2001 From: xuthus5 Date: Fri, 13 Oct 2023 22:30:29 +0800 Subject: [PATCH] coco upgrade --- core/context.go => context.go | 2 +- core/core.pb.go => core.pb.go | 2 +- core/core.proto => core.proto | 4 +- core/file_module.proto | 61 ------------------- core/errcode.go => errcode.go | 2 +- go.mod | 12 ++-- core/router.go => router.go | 2 +- core/router_register.go => router_register.go | 25 ++++++-- ...egister_test.go => router_register_test.go | 2 +- 9 files changed, 32 insertions(+), 80 deletions(-) rename core/context.go => context.go (98%) rename core/core.pb.go => core.pb.go (99%) rename core/core.proto => core.proto (81%) delete mode 100644 core/file_module.proto rename core/errcode.go => errcode.go (99%) rename core/router.go => router.go (96%) rename core/router_register.go => router_register.go (96%) rename core/router_register_test.go => router_register_test.go (98%) diff --git a/core/context.go b/context.go similarity index 98% rename from core/context.go rename to context.go index 2b2bfb0..e1afbb1 100644 --- a/core/context.go +++ b/context.go @@ -1,4 +1,4 @@ -package core +package coco import ( "fmt" diff --git a/core/core.pb.go b/core.pb.go similarity index 99% rename from core/core.pb.go rename to core.pb.go index 83d51c2..b70685f 100644 --- a/core/core.pb.go +++ b/core.pb.go @@ -4,7 +4,7 @@ // protoc v3.21.5 // source: core.proto -package core +package coco import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" diff --git a/core/core.proto b/core.proto similarity index 81% rename from core/core.proto rename to core.proto index 7406bb3..7d0260b 100644 --- a/core/core.proto +++ b/core.proto @@ -1,8 +1,8 @@ syntax = "proto3"; -package core; +package coco; -option go_package = "./;core"; +option go_package = "./;coco"; message ErrMsg { int32 err_code = 1; // 错误码 diff --git a/core/file_module.proto b/core/file_module.proto deleted file mode 100644 index 5daa0dd..0000000 --- a/core/file_module.proto +++ /dev/null @@ -1,61 +0,0 @@ -syntax = "proto3"; - -package controller; - -option go_package = "./;core"; - - -// @route_group: true -// @base_url: /api/file -// @gen_to: ./core/file_controller.go -service File { - // @desc: 列表 - // @author: Young Xu - // @method: GET - // @api: /list - rpc List (ListReq) returns (ListResp); - // @desc: 上传 - // @author: Young Xu - // @method: POST - // @api: /upload - rpc Upload (UploadReq) returns (UploadResp); - // @desc: 删除 - // @author: Young Xu - // @method: POST - // @api: /delete - rpc Delete (DeleteReq) returns (DeleteResp); - // @desc: 下载 - // @author: Young Xu - // @method: GET - // @api: /download - rpc Download (DownloadReq) returns (DownloadResp); -} - - -message ListReq {} - -message ListResp { - message Item { - string filename = 1; // 文件名 - string file_size = 2; // 文件大小 - string created_at = 3; // 上传时间 - } - repeated Item items = 1; // 列表 -} - -message UploadReq {} - -message UploadResp {} - -message DeleteReq { - string filename = 1; // 文件名 -} - -message DeleteResp {} - -message DownloadReq { - // @v: required - string f = 1; // 文件地址 -} - -message DownloadResp {} diff --git a/core/errcode.go b/errcode.go similarity index 99% rename from core/errcode.go rename to errcode.go index d8c734d..c606c19 100644 --- a/core/errcode.go +++ b/errcode.go @@ -1,4 +1,4 @@ -package core +package coco import "fmt" diff --git a/go.mod b/go.mod index 889f253..25ec5ee 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/gin-gonic/gin v1.9.1 - github.com/go-playground/validator/v10 v10.15.3 + github.com/go-playground/validator/v10 v10.15.5 github.com/gorilla/schema v1.2.0 github.com/json-iterator/go v1.1.12 github.com/pkg/errors v0.9.1 @@ -13,10 +13,10 @@ require ( ) require ( - github.com/bytedance/sonic v1.10.0 // indirect + github.com/bytedance/sonic v1.10.2 // indirect github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d // indirect github.com/chenzhuoyu/iasm v0.9.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.2 // indirect + github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect @@ -30,9 +30,9 @@ require ( github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.2.11 // indirect golang.org/x/arch v0.5.0 // indirect - golang.org/x/crypto v0.12.0 // indirect - golang.org/x/net v0.14.0 // indirect - golang.org/x/sys v0.12.0 // indirect + golang.org/x/crypto v0.14.0 // indirect + golang.org/x/net v0.17.0 // indirect + golang.org/x/sys v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/core/router.go b/router.go similarity index 96% rename from core/router.go rename to router.go index 94b5076..a9fab1d 100644 --- a/core/router.go +++ b/router.go @@ -1,4 +1,4 @@ -package core +package coco import "github.com/gin-gonic/gin" diff --git a/core/router_register.go b/router_register.go similarity index 96% rename from core/router_register.go rename to router_register.go index 29f27e4..79df17f 100644 --- a/core/router_register.go +++ b/router_register.go @@ -1,4 +1,4 @@ -package core +package coco import ( "bytes" @@ -18,6 +18,10 @@ import ( "github.com/sirupsen/logrus" ) +type ImplGetRouterMap interface { + GetRouterMap() *Routers +} + type Result struct { ErrCode int `json:"err_code"` ErrMsg string `json:"err_msg"` @@ -82,14 +86,23 @@ func (r *Register) DefaultRouter(opts ...RegisterOptions) *Register { // routers: 绑定自动生成的路由配置文件 proto同级的 autogen_router_module.go 文件中的 AutoGenXXXMap // ig: 需要注册的API组的struct ptr // 对于错误或异常零容忍 直接panic -func (r *Register) RegisterStruct(routers *Routers, drv interface{}, mws ...gin.HandlerFunc) { - if len(routers.Apis) == 0 { - logrus.Warnf("%s api list empty, skip register", routers.StructName) +func (r *Register) RegisterStruct(drv interface{}, mws ...gin.HandlerFunc) { + if drv == nil { + logrus.Warnf("struct nil, skip register") return } - if drv == nil { - logrus.Warnf("%s api struct nil, skip register", routers.StructName) + implGetRouters, ok := drv.(ImplGetRouterMap) + if !ok { + logrus.Panicf("struct not impl ImplGetRouterMap interface") + } + routers := implGetRouters.GetRouterMap() + if routers == nil { + logrus.Warnf("routers empty, skip register") + return + } + if len(routers.Apis) == 0 { + logrus.Warnf("%s api list empty, skip register", routers.StructName) return } diff --git a/core/router_register_test.go b/router_register_test.go similarity index 98% rename from core/router_register_test.go rename to router_register_test.go index 61c92f4..fe516c0 100644 --- a/core/router_register_test.go +++ b/router_register_test.go @@ -1,4 +1,4 @@ -package core +package coco import ( "fmt"