package api import ( "basic.com/valib/logger.git" "bee-config/controller" "bee-config/routers" "github.com/gin-gonic/gin" "net/http" "sync" ) var ( routines []routers.IRouter = []routers.IRouter{} ) func init() { routines = append(routines, controller.AddNode, controller.QueryNode) } func InitRouter(wg *sync.WaitGroup) *http.Server { r := gin.Default() for _, v := range routines { methods := v.GetMethods() if len(methods) > 0 && len(methods) > 0 { for _, m := range methods { r.Handle(m, v.GetPath(), v.GetHandles()...) } } } server := &http.Server{ Addr: ":8080", Handler: r, } wg.Add(1) go func() { if err := server.ListenAndServe(); nil != err { if err != http.ErrServerClosed { logger.Fatal("InitRouter failed with error:", err) } else { logger.Info("InitRouter exited by user") } } wg.Done() }() return server }