58 lines
1.5 KiB
Go
58 lines
1.5 KiB
Go
// main.go
|
|
package main
|
|
|
|
import (
|
|
"Quincy_admin/config"
|
|
_ "Quincy_admin/docs"
|
|
"Quincy_admin/register"
|
|
"log"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// @title Quincy_admin
|
|
// @version 1.0
|
|
// @description 打造一款综合性接口平台.
|
|
// @termsOfService http://swagger.io/terms/
|
|
// @contact.name API Support
|
|
// @contact.url http://www.swagger.io/support
|
|
// @contact.email support@swagger.io
|
|
// @license.name Apache 2.0
|
|
// @license.url http://www.apache.org/licenses/LICENSE-2.0.html
|
|
// @host localhost:8080
|
|
// @BasePath /quin
|
|
// @securityDefinitions.apikey ApiKeyAuth
|
|
// @in header
|
|
// @name Authorization
|
|
func main() {
|
|
//===================================加载配置====================================
|
|
cfg := config.LoadConfig()
|
|
|
|
// 根据配置决定运行模式
|
|
if cfg.Server.Mode == "release" {
|
|
gin.SetMode(gin.ReleaseMode)
|
|
} else {
|
|
gin.SetMode(gin.DebugMode)
|
|
}
|
|
|
|
// =================================初始化服务====================================
|
|
services, err := register.InitializeServices(cfg)
|
|
if err != nil {
|
|
log.Fatalf("Failed to initialize services: %v", err)
|
|
}
|
|
defer services.Cleanup()
|
|
|
|
// =================================创建Gin引擎====================================
|
|
router := gin.New()
|
|
|
|
router.Use(gin.Recovery())
|
|
|
|
// 注册所有中间件和路由
|
|
register.MiddlewaresAndRoutes(services.DB, router, services.CronManager)
|
|
|
|
// 启动服务器
|
|
if err := router.Run(":" + cfg.Server.Port); err != nil {
|
|
log.Fatalf("Failed to start server: %v", err)
|
|
}
|
|
}
|