# Server API 全量文档 ## 概述 - **基础地址**:`http://localhost:8000` - **版本前缀**:`/api/v1` - **认证方式**: - Header: `Authorization: Bearer ` (用于普通用户接口) - Header: `x-admin-token: admin-secret-token` (用于管理员接口) - Header: `x-api-key: ` (用于部分工具接口) --- ## 📚 1. 认证模块 (Auth) **Base Path**: `/api/v1/auth` ### 1.1 注册 - **URL**: `POST /register` - **功能**: 用户注册 - **请求体**: ```json { "username": "user1", "password": "password123", "confirm_password": "password123", "email": "user1@example.com", // 可选 "code": "123456", // 验证码(可选) "device_id": "device_001" // 可选,默认 unknown_device } ``` - **响应**: ```json { "access_token": "eyJhbG...", "token_type": "bearer", "username": "user1" } ``` ### 1.2 登录 - **URL**: `POST /login` - **功能**: 用户登录,获取 Token - **请求体**: ```json { "username": "user1", "password": "password123", "device_id": "device_001" } ``` - **响应**: 同注册接口 ### 1.3 发送验证码 - **URL**: `POST /send-verification-code` - **功能**: 发送注册/验证邮件验证码 - **请求体**: ```json { "email": "user1@example.com" } ``` ### 1.4 验证邮箱 - **URL**: `POST /verify-email` - **功能**: 验证邮箱验证码 - **请求体**: ```json { "username": "user1", "code": "123456" } ``` ### 1.5 忘记密码 - **URL**: `POST /forgot-password` - **功能**: 发送重置密码邮件 - **请求体**: ```json { "email": "user1@example.com" } ``` ### 1.6 重置密码 - **URL**: `POST /reset-password` - **功能**: 使用 Token 重置密码 - **请求体**: ```json { "email": "user1@example.com", "token": "123456", "new_password": "newpassword123", "confirm_password": "newpassword123" } ``` ### 1.7 登出 - **URL**: `POST /logout` - **功能**: 退出当前设备登录 - **请求体**: ```json { "username": "user1", "device_id": "device_001" } ``` ### 1.8 许可证验证 (Verify) - **URL**: `POST /verify` - **功能**: 验证当前 Token 和会话是否有效(用于应用启动检查) - **Headers**: `Authorization: Bearer ` - **请求体**: ```json { "username": "user1", "device_id": "device_001" } ``` - **响应**: ```json { "valid": true, "username": "user1", "expire_date": "2025-12-31T23:59:59" // 若有过期时间 } ``` ### 1.9 心跳 (Heartbeat) - **URL**: `POST /heartbeat` - **功能**: 维持会话活跃状态 - **请求体**: ```json { "username": "user1", "device_id": "device_001" } ``` ### 1.10 获取在线时长 - **URL**: `GET /online-time/{username}` - **功能**: 获取用户累计在线时长 - **响应**: ```json { "username": "user1", "total_seconds": 3600, // 历史累计 "active_seconds": 120 // 当前会话 } ``` --- ## 🖥️ 2. 客户端模块 (Client) **Base Path**: `/api/v1/client` ### 2.1 检查更新 - **URL**: `POST /check_update` - **功能**: 检查插件是否有新版本 - **请求体**: ```json { "username": "user1" // 用于检查用户所在组的特定版本 } ``` ### 2.2 客户端登录 - **URL**: `POST /login` - **功能**: 客户端专用登录,返回更多用户信息 - **请求体**: 同 Auth 登录 - **响应**: ```json { "code": 200, "message": "success", "data": { "token": "eyJ...", "username": "user1", "expire_date": "2025-12-31", "permissions": ["plugin.use"] } } ``` --- ## 👤 3. 用户资料 (User Profile) **Base Path**: `/api/v1` ### 3.1 获取资料 - **URL**: `GET /user/profile?username=user1` - **功能**: 获取用户详细资料(积分、VIP 状态、签到信息等) - **Headers**: `Authorization: Bearer ` ### 3.2 更新资料 - **URL**: `PUT /user/profile` - **功能**: 更新昵称、头像等 - **请求体**: ```json { "username": "user1", "nickname": "New Nickname", "avatar": "http://example.com/avatar.jpg" } ``` ### 3.3 积分历史 - **URL**: `GET /points/history` - **功能**: 分页获取积分变动记录 - **Query Params**: `username`, `type` (可选: checkin/consume/reward), `page`, `limit` --- ## 📅 4. 签到模块 (Check-In) **Base Path**: `/api/v1/checkin` ### 4.1 每日签到 - **URL**: `POST /daily` - **功能**: 执行每日签到 - **请求体**: `{"username": "user1"}` - **响应**: ```json { "code": 200, "data": { "success": true, "points_earned": 10, "consecutive_days": 5, "message": "签到成功..." } } ``` ### 4.2 签到状态 - **URL**: `GET /status?username=user1` - **功能**: 检查今日是否已签到 ### 4.3 签到日历 - **URL**: `GET /calendar/{year}/{month}` - **功能**: 获取指定月份的签到日期列表 - **Query Params**: `username` ### 4.4 签到记录 (列表) - **URL**: `GET /history?username=user1&page=1` - **功能**: 分页获取签到记录 ### 4.5 获取签到规则 - **URL**: `GET /config` - **功能**: 获取签到奖励规则(公开接口,无需 Admin Token) - **响应**: ```json { "code": 200, "data": [ { "consecutive_days": 1, "base_points": 10, "bonus_points": 0, "total_points": 10 }, { "consecutive_days": 7, "base_points": 10, "bonus_points": 20, "total_points": 30 } ] } ``` --- ## 🛠️ 5. 功能使用 (Feature) **Base Path**: `/api/v1/feature` ### 5.1 使用功能的 (扣费接口) - **URL**: `POST /use` - **功能**: 记录功能使用,扣除积分或 VIP 配额 - **请求体**: ```json { "username": "user1", "feature_key": "ai_remove_bg", "device_id": "device_001" } ``` - **响应**: ```json { "code": 200, "data": { "success": true, "cost_type": "points", // 或 vip_quota, free "points_cost": 10, "message": "消耗10积分" } } ``` --- ## 🧮 6. 工具演示 (JSX Demo) **Base Path**: `/api/v1/jsx_demo` ### 6.1 计算表达式 - **URL**: `POST /calculate` - **Headers**: `x-api-key: ` - **请求体**: `{"expression": "1+1"}` --- ## 📊 7. 统计与日志 (Analytics & Stats) **Base Path**: `/api/v1` ### 7.1 上报日志 - **URL**: `POST /analytics/log` - **功能**: 客户端上报行为日志 - **请求体**: ```json { "username": "user1", "device_id": "dev1", "action": "click_button", "timestamp": 1234567890 } ``` ### 7.2 获取用户统计 - **URL**: `GET /analytics/stats/{username}` --- ## 👑 8. 管理员后台 (Admin) **Headers**: `x-admin-token: admin-secret-token` (部分接口兼容 Form 表单 token) ### 8.1 基础管理 (Base Path: `/api/v1/admin`) - `POST /upload_version`: 上传新版本插件包 - `GET /archives`: 列出历史版本 - `POST /groups`: 创建用户组 - `GET /groups`: 获取用户组列表 - `PUT /groups/{id}`: 更新用户组 - `GET /users`: 获取所有用户列表 - `PUT /users/{id}/group`: 修改用户所属组 - `PUT /users/{id}/permissions`: 修改用户权限 ### 8.2 配置管理 (Base Path: `/api/v1/admin/config`) - **功能配置** (`/features`): GET(列表), POST(新增), PUT(/{key} 更新), DELETE(/{key} 删除) - **VIP 配置** (`/vip`): GET(列表), PUT(/{type} 更新) - **签到配置** (`/checkin`): GET(列表), POST(新增), PUT(/{days} 更新), DELETE(/{days} 删除) ### 8.3 数据统计 (Base Path: `/api/v1/admin/stats`) - `GET /today`: 今日概览 (用户数、签到数、功能使用数) - `GET /feature-usage`: 功能使用排行 (Top 10) - `GET /points-trend`: 积分收支趋势 (近 7 天)