代码拉取完成,页面将自动刷新
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)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。