routes

package
v1.11.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 2, 2026 License: MIT Imports: 21 Imported by: 0

README

路由结构说明

本项目已将路由按照功能模块拆分到不同的文件中,提高代码的可维护性和可读性。

文件结构

internal/routes/
├── routes.go       # 主路由文件(保持向后兼容)
├── setup.go        # 路由整合设置
├── base.go         # 基础路由(首页、健康检查、配置获取)
├── share.go        # 分享相关路由 (/share/*)
├── user.go         # 用户相关路由 (/user/*)
├── chunk.go        # 分片上传路由 (/chunk/*)
├── admin.go        # 管理员路由 (/admin/*)
└── README.md       # 本说明文档

路由分类

1. 基础路由 (base.go)
  • GET / - 首页
  • POST / - 获取系统配置
  • GET /health - 健康检查
  • GET /robots.txt - robots.txt
2. 分享路由 (share.go)

路径前缀: /share

  • POST /share/text/ - 分享文本
  • POST /share/file/ - 分享文件
  • GET|POST /share/select/ - 获取分享内容
  • GET /share/download - 下载文件
3. 用户路由 (user.go)

路径前缀: /user

API 路由:

  • POST /user/register - 用户注册
  • POST /user/login - 用户登录
  • GET /user/system-info - 获取系统信息
  • POST /user/logout - 用户登出(需认证)
  • GET /user/profile - 获取用户资料(需认证)
  • PUT /user/profile - 更新用户资料(需认证)
  • POST /user/change-password - 修改密码(需认证)
  • GET /user/files - 获取用户文件(需认证)
  • GET /user/stats - 获取用户统计(需认证)
  • GET /user/check-auth - 检查认证状态(需认证)
  • DELETE /user/files/:id - 删除用户文件(需认证)

页面路由:

  • GET /user/login - 登录页面
  • GET /user/register - 注册页面
  • GET /user/dashboard - 用户仪表板
  • GET /user/forgot-password - 忘记密码页面
4. 分片上传路由 (chunk.go)

路径前缀: /chunk

  • POST /chunk/upload/init/ - 初始化分片上传
  • POST /chunk/upload/chunk/:upload_id/:chunk_index - 上传分片
  • POST /chunk/upload/complete/:upload_id - 完成上传
  • GET /chunk/upload/status/:upload_id - 获取上传状态
  • POST /chunk/upload/verify/:upload_id/:chunk_index - 验证分片
  • DELETE /chunk/upload/cancel/:upload_id - 取消上传
5. 管理员路由 (admin.go)

路径前缀: /admin

页面路由:

  • GET /admin/ - 管理页面

API 路由:

  • POST /admin/login - 管理员登录

需要认证的路由:

  • GET /admin/dashboard - 仪表板
  • GET /admin/stats - 统计信息
  • GET /admin/files - 文件列表
  • GET /admin/files/:code - 获取文件信息
  • DELETE /admin/files/:code - 删除文件
  • PUT /admin/files/:code - 更新文件
  • GET /admin/files/download - 下载文件
  • GET /admin/config - 获取配置
  • PUT /admin/config - 更新配置
  • POST /admin/clean - 清理过期文件

用户管理:

  • GET /admin/users - 用户列表
  • GET /admin/users/:id - 获取用户信息
  • POST /admin/users - 创建用户
  • PUT /admin/users/:id - 更新用户
  • DELETE /admin/users/:id - 删除用户
  • PUT /admin/users/:id/status - 更新用户状态
  • GET /admin/users/:id/files - 获取用户文件

存储管理:

  • GET /admin/storage - 获取存储信息
  • POST /admin/storage/switch - 切换存储
  • GET /admin/storage/test/:type - 测试存储连接
  • PUT /admin/storage/config - 更新存储配置

使用方式

在 main.go 中使用
// 方式1:使用原有接口(向后兼容)
routes.SetupRoutes(router, shareHandler, chunkHandler, adminHandler, storageHandler, userHandler, cfg, userService)

// 方式2:使用新的整合接口
routes.SetupAllRoutes(router, shareHandler, chunkHandler, adminHandler, storageHandler, userHandler, cfg, userService)

// 方式3:按需设置特定模块路由
routes.SetupBaseRoutes(router, cfg)
routes.SetupShareRoutes(router, shareHandler, cfg, userService)
routes.SetupUserRoutes(router, userHandler, cfg, userService)
routes.SetupChunkRoutes(router, chunkHandler, cfg)
routes.SetupAdminRoutes(router, adminHandler, storageHandler, cfg)

优势

  1. 模块化: 每个功能模块的路由独立管理
  2. 可维护性: 修改特定功能的路由时不影响其他模块
  3. 可读性: 路由定义更加清晰,易于理解
  4. 可扩展性: 新增功能模块时只需添加对应的路由文件
  5. 向后兼容: 保留原有的 SetupRoutes 函数,不影响现有代码

注意事项

  • 所有函数名已改为公开(首字母大写),便于跨包调用
  • 保持了原有的中间件和认证逻辑
  • 路由的逻辑和功能完全保持不变,仅做了结构上的拆分

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateAndSetupRouter

func CreateAndSetupRouter(
	manager *config.ConfigManager,
	daoManager *repository.RepositoryManager,
	storageManager *storage.StorageManager,
) *gin.Engine

CreateAndSetupRouter 创建并完全配置Gin引擎

func CreateAndStartServer

func CreateAndStartServer(
	manager *config.ConfigManager,
	daoManager *repository.RepositoryManager,
	storageManager *storage.StorageManager,
) (*http.Server, error)

CreateAndStartServer 创建并启动完整的HTTP服务器

func GetEnableChunk

func GetEnableChunk(cfg *config.ConfigManager) int

GetEnableChunk 获取分片上传配置

func GracefulShutdown

func GracefulShutdown(srv *http.Server, timeout time.Duration) error

GracefulShutdown 优雅关闭服务器

func RegisterDynamicRoutes added in v1.7.1

func RegisterDynamicRoutes(
	router *gin.Engine,
	manager *config.ConfigManager,
	daoManager *repository.RepositoryManager,
	storageManager *storage.StorageManager,
)

RegisterDynamicRoutes 在数据库可用后注册需要数据库的路由(不包含基础路由)

func SetupAPIRoutes added in v1.9.9

func SetupAPIRoutes(
	router *gin.Engine,
	shareHandler *handlers.ShareHandler,
	chunkHandler *handlers.ChunkHandler,
	cfg *config.ConfigManager,
	userService *services.UserService,
)

SetupAPIRoutes 注册面向 API Key 客户端的精简接口

func SetupAdminRoutes

func SetupAdminRoutes(
	router *gin.Engine,
	adminHandler *handlers.AdminHandler,
	storageHandler *handlers.StorageHandler,
	cfg *config.ConfigManager,
	userService interface {
		ValidateToken(string) (interface{}, error)
	},
)

SetupAdminRoutes 设置管理员相关路由

func SetupAllRoutes

func SetupAllRoutes(
	router *gin.Engine,
	shareHandler *handlers.ShareHandler,
	chunkHandler *handlers.ChunkHandler,
	adminHandler *handlers.AdminHandler,
	storageHandler *handlers.StorageHandler,
	userHandler *handlers.UserHandler,
	setupHandler *handlers.SetupHandler,
	manager *config.ConfigManager,
	userService *services.UserService,
)

SetupAllRoutes 设置所有路由(使用已初始化的处理器)

func SetupAllRoutesWithDependencies

func SetupAllRoutesWithDependencies(
	router *gin.Engine,
	manager *config.ConfigManager,
	daoManager *repository.RepositoryManager,
	storageManager *storage.StorageManager,
)

SetupAllRoutesWithDependencies 从依赖项初始化并设置所有路由

func SetupBaseRoutes

func SetupBaseRoutes(router *gin.Engine, userHandler *handlers.UserHandler, cfg *config.ConfigManager)

SetupBaseRoutes 设置基础路由(首页、健康检查、静态文件等)

func SetupChunkRoutes

func SetupChunkRoutes(
	router *gin.Engine,
	chunkHandler *handlers.ChunkHandler,
	cfg *config.ConfigManager,
	userService *services.UserService,
)

SetupChunkRoutes 设置分片上传相关路由

func SetupQRRoutes added in v1.11.1

func SetupQRRoutes(router *gin.Engine)

SetupQRRoutes 注册二维码相关路由

func SetupRoutes

func SetupRoutes(
	router *gin.Engine,
	shareHandler *handlers.ShareHandler,
	chunkHandler *handlers.ChunkHandler,
	adminHandler *handlers.AdminHandler,
	storageHandler *handlers.StorageHandler,
	userHandler *handlers.UserHandler,
	cfg *config.ConfigManager,
	userService *services.UserService,
)

SetupRoutes 设置路由 (保持兼容性,使用已初始化的处理器)

func SetupShareRoutes

func SetupShareRoutes(
	router *gin.Engine,
	shareHandler *handlers.ShareHandler,
	cfg *config.ConfigManager,
	userService *services.UserService,
)

SetupShareRoutes 设置分享相关路由

func SetupSystemInitRoutes

func SetupSystemInitRoutes(
	router *gin.Engine,
	setupHandler *handlers.SetupHandler,
	userHandler *handlers.UserHandler,
	manager *config.ConfigManager,
)

SetupSystemInitRoutes 设置系统初始化路由

func SetupUserAPIRoutes added in v1.7.1

func SetupUserAPIRoutes(
	router *gin.Engine,
	userHandler *handlers.UserHandler,
	cfg *config.ConfigManager,
	userService *services.UserService,
)

SetupUserAPIRoutes 仅注册用户相关的 API 路由(供动态注册时使用,避免重复注册页面路由)

func SetupUserRoutes

func SetupUserRoutes(
	router *gin.Engine,
	userHandler *handlers.UserHandler,
	cfg *config.ConfigManager,
	userService *services.UserService,
)

SetupUserRoutes 设置用户相关路由

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL