package main import ( "fmt" "git.echol.cn/loser/logger" "git.echol.cn/loser/logger/log" "github.com/gin-gonic/gin" "golang.org/x/sync/errgroup" "net/http" "online_code/config" "online_code/core" "online_code/initialize" "online_code/route" "time" ) var g errgroup.Group func init() { logger.InitLogger(logger.LogConfig{Mode: logger.Dev, LokiEnable: false, FileEnable: true}) initialize.InitSystem() // 初始化系统配置 } // 启动入口 func main() { // 强制日志颜色化 gin.ForceConsoleColor() app := &http.Server{ Addr: fmt.Sprintf(":%d", config.Scd.Api.Port), Handler: api(), ReadTimeout: 5 * time.Second, WriteTimeout: 1 * time.Minute, } // 启动项目 g.Go(func() error { return app.ListenAndServe() }) if err := g.Wait(); err != nil { log.Panicf("启动失败,错误信息:%s", err.Error()) } } // 生成接口服务 func api() http.Handler { app := gin.New() app.Use(gin.Recovery()) // 开启自定义请求方式不允许处理函数 app.HandleMethodNotAllowed = true // 处理请求方式不对 app.NoMethod(core.NoMethodHandler()) // 404返回数据 app.NoRoute(core.NoRouteHandler()) // 初始化路由 route.InitRoute(app.Group(config.Scd.Api.Prefix)) return app }