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
|
}
|