51 lines
1.0 KiB
Go
51 lines
1.0 KiB
Go
// gen2d backend 入口
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
|
|
"gen2d/internal/config"
|
|
"gen2d/internal/db"
|
|
"gen2d/internal/handler"
|
|
"gen2d/internal/model"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func main() {
|
|
cfg := config.Load()
|
|
|
|
gin.SetMode(cfg.Mode)
|
|
|
|
// 初始化 SQLite 数据库
|
|
if err := db.Init(cfg.DSN, &model.User{}); err != nil {
|
|
log.Fatalf("db init failed: %v", err)
|
|
}
|
|
|
|
// 初始化 AuthService,注入 JWT 配置
|
|
handler.InitAuthService(cfg.JWTSecret, cfg.JWTExpire)
|
|
|
|
r := gin.New()
|
|
r.Use(gin.Recovery()) // panic 恢复中间件,防止服务因未捕获异常宕机
|
|
|
|
// API v1 路由组
|
|
v1 := r.Group("/api/v1")
|
|
{
|
|
v1.GET("/health", handler.Health) // 健康检查
|
|
}
|
|
|
|
// Auth 路由组
|
|
auth := r.Group("/auth")
|
|
{
|
|
auth.POST("/register", handler.Register) // 用户注册
|
|
auth.POST("/login", handler.Login) // 用户登录
|
|
}
|
|
|
|
addr := fmt.Sprintf(":%d", cfg.Port)
|
|
log.Printf("gen2d backend starting on %s", addr)
|
|
if err := r.Run(addr); err != nil {
|
|
log.Fatalf("server failed: %v", err)
|
|
}
|
|
}
|