// Package router ... // // Description : router ... // // Author : go_developer@163.com<白茶清欢> // // Date : 2025-01-27 19:33 package router import ( "errors" "github.com/gin-gonic/gin" "net/http" "strings" ) // 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) g.Use(middlewareList...) cParser := controller{} for _, c := range cList { urlTable := cParser.Parse(c) for _, itemUriCfg := range urlTable { method := strings.ToUpper(itemUriCfg.RequestMethod) switch method { case http.MethodGet: g.GET(itemUriCfg.Path, RequestHandler(itemUriCfg)) case http.MethodHead: g.HEAD(itemUriCfg.Path, RequestHandler(itemUriCfg)) case http.MethodPost: g.POST(itemUriCfg.Path, RequestHandler(itemUriCfg)) case http.MethodPut: g.PUT(itemUriCfg.Path, RequestHandler(itemUriCfg)) case http.MethodPatch: g.PATCH(itemUriCfg.Path, RequestHandler(itemUriCfg)) case http.MethodDelete: g.DELETE(itemUriCfg.Path, RequestHandler(itemUriCfg)) case http.MethodOptions: g.OPTIONS(itemUriCfg.Path, RequestHandler(itemUriCfg)) case http.MethodTrace: return errors.New(`method Trace is not supported`) } } } return nil }