- 用户注册(
/api/v1/auth/register) - 用户登录(
/api/v1/auth/login) - JWT Token认证
- 用户信息查询(
/api/v1/profile) - 密码加密存储(bcrypt)
- 用户名和邮箱唯一性检查
- 用户自定义域名添加(
POST /api/v1/domains) - 域名列表查询(
GET /api/v1/domains) - 域名删除(
DELETE /api/v1/domains/:id) - 设置默认域名(
PUT /api/v1/domains/:id/default) - 创建链接时选择域名
- 系统默认域名支持
- 创建链接时自动生成二维码
- 二维码Base64格式返回
- 支持256x256像素大小
- 二维码存储在数据库中
- 新用户默认限制10条链接
- 创建链接前检查限制
- 达到限制时返回友好错误提示
- 管理员可提升用户限制(通过数据库)
- Redis缓存支持(可选)
- API限流(每秒100个请求)
- 分布式限流(使用Redis)
- 本地限流(Redis不可用时)
- 链接创建支持用户和域名
- 链接列表按用户过滤
- 链接删除权限检查
- 哈希一致性检查按用户隔离
POST /api/v1/auth/register- 用户注册POST /api/v1/auth/login- 用户登录GET /api/v1/profile- 获取用户信息
POST /api/v1/domains- 创建域名GET /api/v1/domains- 获取域名列表DELETE /api/v1/domains/:id- 删除域名PUT /api/v1/domains/:id/default- 设置默认域名
POST /api/v1/links- 创建短链接(自动生成二维码)GET /api/v1/links- 获取链接列表GET /api/v1/links/search- 搜索链接GET /api/v1/links/:code- 获取链接详情DELETE /api/v1/links/:code- 删除链接
GET /api/v1/stats- 获取统计信息GET /api/v1/settings- 获取配置PUT /api/v1/settings- 更新配置
-
users - 用户表
- id, username, email, password, role, max_links, created_at, updated_at
-
domains - 域名表
- id, user_id, domain, is_default, is_active, created_at, updated_at
- links - 链接表
- 新增字段:user_id, domain_id, qr_code
REDIS_HOST- Redis地址(可选)REDIS_PASSWORD- Redis密码(可选)
- 新增Redis服务
- 应用服务依赖Redis
curl -X POST http://localhost:8080/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{
"username": "testuser",
"email": "test@example.com",
"password": "password123"
}'curl -X POST http://localhost:8080/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{
"username": "testuser",
"password": "password123"
}'
# 返回: {"token": "JWT_TOKEN", "user": {...}}curl -X POST http://localhost:8080/api/v1/domains \
-H "Authorization: Bearer JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"domain": "s.example.com",
"is_default": true
}'curl -X POST http://localhost:8080/api/v1/links \
-H "Authorization: Bearer JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.example.com",
"title": "示例网站",
"domain_id": 1
}'
# 返回包含 qr_code 字段- 普通用户:只能管理自己的链接和域名
- 管理员:可以管理所有链接(通过API Token或admin角色)
- 新用户限制:默认最多10条链接,达到限制后需要联系管理员提升
- JWT Token有效期为24小时
- 二维码生成失败不影响链接创建
- Redis是可选的,不配置也能正常运行
- 域名验证需要用户自行配置DNS
- 系统默认域名使用BASE_URL配置