Files
gen2d/backend/cmd/main.go
T
wonder 83d3d2663d feat: 接入七牛云存储,替换本地文件存储
- generate handler 中的本地文件写入替换为 storageSvc.Upload() 调用
- 移除 main.go 中的本地 generation 目录创建和静态文件服务
- 更新 api.md 接口状态标记
2026-05-25 13:48:37 +08:00

73 lines
2.0 KiB
Go
Executable File

// gen2d backend 入口
package main
import (
"fmt"
"log"
"gen2d/internal/config"
"gen2d/internal/db"
"gen2d/internal/handler"
"gen2d/internal/mildware"
"gen2d/internal/model"
"gen2d/internal/service"
"github.com/gin-gonic/gin"
)
func main() {
cfg := config.Load()
gin.SetMode(cfg.Server.Mode)
// 初始化 SQLite 数据库
if err := db.Init(cfg.Database.DSN, &model.User{}); err != nil {
log.Fatalf("db init failed: %v", err)
}
// 初始化 AuthService,注入 JWT 配置
handler.InitAuthService(cfg.JWT.Secret, cfg.JWT.Expire)
// 注入 LLM 和文生图配置到 service 层
service.InitLLMConfig(cfg.LLM)
service.InitImageGenConfig(cfg.ImageGen)
// 初始化七牛云存储服务
storageSvc := service.NewStorageService(cfg.Qiniu)
handler.InitStorageService(storageSvc)
r := gin.New()
r.Use(gin.Recovery()) // panic 恢复中间件,防止服务因未捕获异常宕机
// API v1 路由组 — 公开接口
v1 := r.Group("/api/v1")
{
v1.GET("/health", handler.Health) // 健康检查
v1.POST("/prompt/optimize", handler.PromptOptimize) // 提示词优化
v1.GET("/assets/download", handler.DownloadAsset) // 素材下载
}
// API v1 路由组 — 需认证
v1Auth := r.Group("/api/v1")
v1Auth.Use(mildware.AuthMiddleware(cfg.JWT.Secret))
{
v1Auth.POST("/generate", handler.Generate) // 素材生成管线
v1Auth.GET("/tasks/:taskId", handler.GetTask) // 查询任务
v1Auth.GET("/tasks/:taskId/assets", handler.GetAssets) // 查询任务素材
v1Auth.POST("/images/edit", handler.EditImage) // 图片编辑
}
// Auth 路由组
auth := r.Group("/auth")
{
auth.POST("/register", handler.Register) // 用户注册
auth.POST("/login", handler.Login) // 用户登录
}
addr := fmt.Sprintf(":%d", cfg.Server.Port)
log.Printf("gen2d backend starting on %s", addr)
if err := r.Run(addr); err != nil {
log.Fatalf("server failed: %v", err)
}
}