diff --git a/router/register_test.go b/router/register_test.go index 6bbedd8..2ec6bef 100644 --- a/router/register_test.go +++ b/router/register_test.go @@ -32,7 +32,7 @@ type Test struct { func Test_parseController(t *testing.T) { SetValidateErrTag("err_msg") - r := gin.Default() - Group(r, "test", nil, TestController{}) - r.Run(":8080") + s := NewServer(8080, nil) + s.Group("test", nil, TestController{}) + s.Start() } diff --git a/router/group.go b/router/server.go similarity index 59% rename from router/group.go rename to router/server.go index 1b39b67..1a3b3d3 100644 --- a/router/group.go +++ b/router/server.go @@ -4,23 +4,53 @@ // // Author : go_developer@163.com<白茶清欢> // -// Date : 2025-01-27 19:33 +// Date : 2025-02-07 18:19 package router import ( - "errors" + "fmt" "github.com/gin-gonic/gin" "net/http" "strings" ) +// NewServer server实例 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 18:20 2025/2/7 +func NewServer(port int, option any) *server { + if port < 80 { + panic("port should be greater than 80") + } + return &server{ + router: gin.Default(), + } +} + +type server struct { + router *gin.Engine + port int +} + +// Start 启动服务 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 18:31 2025/2/7 +func (s *server) Start() { + if err := s.router.Run(fmt.Sprintf(":%d", s.port)); err != nil { + panic("服务启动监听失败" + err.Error()) + } +} + // Group 注册接口路由 // // Author : go_developer@163.com<白茶清欢> // // Date : 19:35 2025/1/27 -func Group(router *gin.Engine, routerPrefix string, middlewareList []gin.HandlerFunc, cList ...any) error { - g := router.Group(routerPrefix) +func (s *server) Group(routerPrefix string, middlewareList []gin.HandlerFunc, cList ...any) { + g := s.router.Group(routerPrefix) g.Use(middlewareList...) cParser := controller{} for _, c := range cList { @@ -43,9 +73,8 @@ func Group(router *gin.Engine, routerPrefix string, middlewareList []gin.Handler case http.MethodOptions: g.OPTIONS(itemUriCfg.Path, RequestHandler(itemUriCfg)) case http.MethodTrace: - return errors.New(`method Trace is not supported`) + panic(`method Trace is not supported`) } } } - return nil }