From a50883b7340d46c70dbaef360073bb56b9e2db56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Fri, 7 Feb 2025 18:33:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96server=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E7=9A=84=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- router/register_test.go | 6 ++--- router/{group.go => server.go} | 41 +++++++++++++++++++++++++++++----- 2 files changed, 38 insertions(+), 9 deletions(-) rename router/{group.go => server.go} (59%) 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 }