1 Star 0 Fork 0

玟兵 / gin-partner

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
engine.go 1.89 KB
一键复制 编辑 原始数据 按行查看 历史
玟兵 提交于 2024-05-08 17:07 . 初始化
package partner
import (
"fmt"
"gitee.com/binny_w/go-util"
"github.com/gin-gonic/gin"
"gopkg.in/natefinch/lumberjack.v2"
)
type Engine struct {
E *gin.Engine
PathsGet []string
PathsPost []string
}
func NewEngine(logFile, mode string) *Engine {
gin.SetMode(mode)
lumberjackLogger := &lumberjack.Logger{
Filename: logFile,
MaxSize: 2,
MaxAge: 100,
MaxBackups: 10,
LocalTime: true,
Compress: false,
}
e := gin.New()
e.Use(gin.LoggerWithWriter(lumberjackLogger), gin.RecoveryWithWriter(lumberjackLogger), Cors())
return &Engine{
E: e,
PathsGet: make([]string, 0),
PathsPost: make([]string, 0),
}
}
func (e *Engine) RouterGroup(path string, handlers ...gin.HandlerFunc) *gin.RouterGroup {
return e.E.Group(path, handlers...)
}
func (e *Engine) RouterGet(group *gin.RouterGroup, path string, handlers ...gin.HandlerFunc) gin.IRoutes {
if group == nil {
e.PathsGet = append(e.PathsGet, path)
return e.E.GET(path, handlers...)
}
e.PathsGet = append(e.PathsGet, group.BasePath()+path)
return group.GET(path, handlers...)
}
func (e *Engine) RouterPost(group *gin.RouterGroup, path string, handlers ...gin.HandlerFunc) gin.IRoutes {
if group == nil {
e.PathsPost = append(e.PathsPost, path)
return e.E.POST(path, handlers...)
}
e.PathsPost = append(e.PathsPost, group.BasePath()+path)
return group.POST(path, handlers...)
}
func (e *Engine) RouterWithModel(group *gin.RouterGroup, model Model) {
m := util.StrCamelToCase(model.Name())
for a, h := range model.GetHandlers() {
e.RouterGet(group, fmt.Sprintf("/%s/%s", m, util.StrCamelToCase(a)), h...)
}
for a, h := range model.PostHandlers() {
e.RouterPost(group, fmt.Sprintf("/%s/%s", m, util.StrCamelToCase(a)), h...)
}
}
func (e *Engine) UseMiddleware(middleware ...gin.HandlerFunc) {
e.E.Use(middleware...)
}
func (e *Engine) Run(addr string, onClose func()) {
util.HttpSrvRun(addr, e.E, onClose)
}
Go
1
https://gitee.com/binny_w/gin-partner.git
git@gitee.com:binny_w/gin-partner.git
binny_w
gin-partner
gin-partner
v0.0.4

搜索帮助