mirror of https://gitee.com/topnuomi/goweb
53 lines
936 B
Go
53 lines
936 B
Go
package core
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
type Server struct {
|
|
Engine *gin.Engine
|
|
}
|
|
|
|
func NewServer(release bool, templatesDir string) *Server {
|
|
if release {
|
|
gin.SetMode(gin.ReleaseMode)
|
|
}
|
|
|
|
s := &Server{
|
|
Engine: gin.New(),
|
|
}
|
|
|
|
// 加载模板目录
|
|
if templatesDir != "" {
|
|
s.Engine.LoadHTMLGlob(templatesDir)
|
|
}
|
|
|
|
return s
|
|
}
|
|
|
|
// 注册路由
|
|
func (s *Server) registerRouters(rg *gin.RouterGroup, controllers ...ControllerInterface) {
|
|
for _, v := range controllers {
|
|
v.Register(rg)
|
|
}
|
|
}
|
|
|
|
// 直接注册
|
|
func (s *Server) Router(controllers ...ControllerInterface) *Server {
|
|
s.registerRouters(s.Engine.Group("/"), controllers...)
|
|
return s
|
|
}
|
|
|
|
// 整体分组注册
|
|
func (s *Server) RouterGroup(group string, controllers ...ControllerInterface) *Server {
|
|
rg := s.Engine.Group(group)
|
|
s.registerRouters(rg, controllers...)
|
|
|
|
return s
|
|
}
|
|
|
|
// 运行服务
|
|
func (s *Server) Run(addr string) {
|
|
s.Engine.Run(addr)
|
|
}
|