38 lines
903 B
Go
38 lines
903 B
Go
// @title CarrotSkin API
|
||
// @version 1.0
|
||
// @description Minecraft皮肤站后端API
|
||
// @host localhost:8080
|
||
// @BasePath /api/v1
|
||
// @securityDefinitions.apikey BearerAuth
|
||
// @in header
|
||
// @name Authorization
|
||
|
||
package main
|
||
|
||
import (
|
||
"log"
|
||
|
||
"carrotskin/internal/app"
|
||
"carrotskin/pkg/config"
|
||
|
||
"go.uber.org/fx"
|
||
)
|
||
|
||
// main 应用入口。通过 uber-go/fx 装配所有依赖并管理生命周期。
|
||
//
|
||
// fx.Run() 会:
|
||
// 1. 按 fx.Supply/Provide 构建依赖图
|
||
// 2. 执行所有 fx.Invoke(迁移、路由注册、服务器/任务启动)
|
||
// 3. 监听 SIGINT/SIGTERM 信号
|
||
// 4. 按依赖逆序执行所有 OnStop 钩子(优雅关闭)
|
||
func main() {
|
||
// 加载配置(唯一的全局入口,配置本身是无状态的纯数据)
|
||
cfg, err := config.Load()
|
||
if err != nil {
|
||
log.Fatalf("配置加载失败: %v", err)
|
||
}
|
||
|
||
// 创建并运行 fx 应用
|
||
fx.New(app.Module(cfg)).Run()
|
||
}
|