logo
0
0
WeChat Login
Rename: Focalors BackEnd → Ink Flow, paimon → paimon1999

Ink Flow Go 版本

这是从 Python FastAPI 迁移到 Go Gin 的版本。

项目结构

src_go/ ├── cmd/ │ └── main.go # 应用入口 ├── config/ │ └── config.go # 配置管理 ├── database/ │ └── database.go # 数据库连接 ├── middleware/ │ ├── auth.go # 认证中间件 │ ├── cors.go # CORS中间件 │ └── ratelimit.go # 速率限制中间件 ├── models/ │ ├── base.go # 基础模型 │ ├── user.go # 用户模型 │ ├── content.go # 内容模型 │ └── stats.go # 统计模型 ├── routers/ │ ├── client.go # 客户端路由(用户相关) │ ├── api.go # API路由(信息统计) │ ├── ssg.go # SSG路由(静态站点生成) │ ├── glm.go # GLM AI路由 │ └── control.go # 控制路由(管理员) ├── services/ │ ├── content_service.go # 内容服务 │ └── user_service.go # 用户服务 ├── utils/ │ ├── session.go # Session管理 │ └── helpers.go # 辅助函数 ├── go.mod # Go模块定义 └── README.md # 本文件

迁移说明

主要变化

  1. 框架: FastAPI → Gin
  2. ORM: SQLAlchemy → GORM
  3. 数据库: SQLite(保持不变)
  4. Session: Starlette Session → Gorilla Sessions

模型映射

Python (SQLAlchemy)Go (GORM)
Usermodels.User
UserSessionmodels.UserSession
UserSettingsmodels.UserSettings
Pagemodels.Page
PageVersionmodels.PageVersion
Categorymodels.Category
Commentmodels.Comment
Likemodels.Like
UserStatsmodels.UserStats
ContentStatsmodels.ContentStats
......

路由映射

Python (FastAPI)Go (Gin)
nextjs_router/client.pyrouters/client.go
nextjs_router/api/main.pyrouters/api.go
nextjs_router/ssg.pyrouters/ssg.go
nextjs_router/api/glm.pyrouters/glm.go
nextjs_router/control.pyrouters/control.go

运行项目

安装依赖

cd src_go go mod tidy

运行开发服务器

go run cmd/main.go

构建

go build -o app cmd/main.go

运行

./app

配置

配置文件 .config.prod 应该位于项目根目录,格式为JSON。

API端点

  • GET /health - 健康检查
  • POST /api/v1/users/laGuest - 访客登录
  • POST /api/v1/users/laUser - 用户登录
  • POST /api/v1/users/register - 用户注册
  • GET /api/v1/users/profile - 获取用户信息
  • GET /api/v1/info/website/stats/count - 获取站点统计
  • GET /api/v1/info/cards - 获取卡片列表
  • GET /api/v1/glm/models - 获取GLM模型列表
  • ...

待完善功能

  1. 完整的GLM API集成
  2. 文件上传处理
  3. 邮件发送功能
  4. 完整的数据验证
  5. 单元测试
  6. 日志系统完善
  7. 配置热重载