DOO API 参考
DOO API 参考
49 个扁平 PHP API 文件,各自独立处理 CORS 头和认证。每个文件手动设置 Access-Control-Allow-Origin: *,通过 PHP Session + Token 进行认证。所有响应统一 JSON 格式。
统一响应格式
{
"code": 200,
"message": "操作描述",
"data": { ... }
}
鉴权方式
Session + Token 双机制:登录后 PHP $_SESSION 存储 user_id、username、nickname,同时生成 64 字符随机 Token(bin2hex(random_bytes(32)))返回前端。后续请求使用 Session Cookie 维持登录态,部分接口支持 Authorization: Bearer <token> 头。
管理员接口检查 $_SESSION['user_id'] 和 role === 'admin'。
用户认证
POST /api/login.php — 登录
独立设置 CORS,无外部依赖。
请求(JSON):
{ "username": "string", "password": "string" }
处理:password_verify() 验证 bcrypt 哈希,生成 64 字符 Token,记录登录日志。
响应:
{
"code": 200,
"message": "登录成功",
"data": {
"user": {
"id": 1,
"username": "admin",
"nickname": "管理员",
"avatar": "...",
"background_image": "...",
"followers": 10001,
"following": 0,
"likes": 0,
"created_at": "2026-01-19 15:23:47"
},
"token": "64字符十六进制token"
}
}
| code | 说明 |
|---|---|
| 200 | 登录成功 |
| 400 | 用户名或密码为空 |
| 401 | 用户名或密码错误 |
POST /api/register.php — 注册
逻辑:
- 检查用户名唯一性
password_hash($password, PASSWORD_DEFAULT)加密- INSERT users,nickname 默认为 username
响应:
{ "code": 201, "message": "注册成功", "data": { "username": "newuser" } }
GET 模式返回健康检查信息(PHP 版本、upload 目录状态)。
内容获取
GET /api/feed.php — 视频 Feed 流
无需认证。
SELECT v.id, v.title, v.description, v.video_url,
v.cover_url as cover, v.views, v.created_at,
u.username as author
FROM videos v LEFT JOIN users u ON v.user_id = u.id
ORDER BY v.id DESC LIMIT 20
播放量格式化为 “X次播放”。
GET /api/content.php — 内容 API(完整 CRUD)
支持 GET/POST/PUT/DELETE,自动检查并创建 content 表。
| 方法 | 参数 | 说明 |
|---|---|---|
| GET | ?id=N |
获取单个内容(含作者) |
| GET | ?limit=20&offset=0&status=published |
分页列表 |
| POST | JSON body | 创建内容:user_id, title, content, image_url, video_url, tags, category, status |
| PUT | ?id=N + JSON body |
动态更新指定字段 |
| DELETE | ?id=N |
删除内容 |
GET /api/get_images.php — 图片列表
无需认证。按 ID 降序返回,限制 20 条。
GET /api/get_users.php — 用户列表
无需认证。
SELECT id, username, nickname, avatar, followers, following, likes, created_at
FROM users ORDER BY id DESC
GET /api/get_carousels.php — 轮播图列表
无需认证。仅返回 is_active = 1 的记录,按 sort_order ASC 排序。
GET /api/get_articles.php — 文章列表
按 created_at DESC 排序。独立的 articles 表。
GET /api/announcements.php — 公告列表
返回启用的公告,按 created_at DESC 排序。
GET /api/get_versions.php — 版本列表
返回所有版本,按 created_at DESC,limit 30。
社交互动
GET/POST /api/follow.php — 关注管理
需要认证($_SESSION['user_id'])。
| 方法 | 参数 | 说明 |
|---|---|---|
| GET | ?action=following |
获取当前用户关注列表 |
| GET | ?action=followers |
获取当前用户粉丝列表 |
| GET | ?action=check&user_id=N |
检查是否已关注 |
| POST | {"user_id": N} |
关注用户(双向更新计数器) |
关注逻辑:
- 检查是否已关注(联合唯一约束)
- INSERT into follows
- UPDATE users SET followers + 1(目标用户)
- UPDATE users SET following + 1(当前用户)
GET/POST/PUT/DELETE /api/messages.php — 私信管理
需要认证(支持 Session / Token / 请求参数三种方式)。
| 方法 | 参数 | 说明 |
|---|---|---|
| GET | ?action=get_messages |
会话列表(按最新消息分组,含未读数) |
| GET | (无 action) | 全部消息(sender/receiver 各 50 条) |
| POST | {"action":"send_message","receiver_id":N,"content":"..."} |
发送消息 |
| POST | {"action":"get_messages"} |
会话列表(POST 方式) |
| DELETE | ?id=N |
删除消息(必须为发送者或接收者) |
GET /api/check_follow.php — 检查关注状态
检查当前用户是否关注了指定用户。
内容发布
POST /api/upload.php — 文件上传
使用 multipart/form-data,字段名 file。
限制:
| 类型 | 最大 | MIME |
|---|---|---|
| 图片 | 5MB | image/jpeg, image/png, image/jpg, image/gif, image/webp |
| 视频 | 50MB | video/mp4, video/quicktime, video/x-msvideo, video/avi |
命名:md5(time() . filename) . extension
POST /api/upload_image.php — 图片上传(内容发布)
上传后自动 INSERT 到 images 表,返回图片 ID 和 URL。
POST /api/upload_article.php — 文章发布
创建文章记录,支持标题、内容、标签、分类。
POST /api/upload_version.php — 版本发布
上传 APK 文件(最大 100MB),记录版本信息。
文件管理
GET /api/files.php — 文件列表
需要认证,按 created_at DESC 分页返回用户文件。
GET /api/files_preview.php — 文件预览
通过 ?id=N 根据文件 ID 获取预览 URL。
POST /api/files_upload.php — 文件上传
需要认证,支持进度追踪,记录到 files 表(含 OSS key 字段预留)。
推荐系统
GET/POST /api/recommend.php — 智能推荐引擎
完整的推荐系统,包含 50KB+ 业务逻辑。
GET:获取推荐内容
- 参数:
?limit=20&offset=0 - 检查 A/B 测试 → 流量分配 → 选择算法 → 个性化推荐
- 5 分钟文件缓存
- 返回算法标识 + A/B 测试 ID
POST:记录推荐点击
{
"action": "click",
"content_id": 115,
"algorithm": "hybrid",
"ab_test_id": null,
"recommend_id": "rec_xxx"
}
4 种推荐算法: | 算法 | 权重 | 说明 | |——|——|——| | collaborative_filtering | 0.3 | 协同过滤,按点赞数排序 | | content_based | 0.2 | 基于内容,按发布时间排序 | | popularity | 0.25 | 流行度,按点赞+评论加权排序 | | hybrid | 0.1 | 混合推荐,综合热度+时间 |
用户画像:统计用户行为类型和频次 → 分析标签偏好 → 分析分类偏好 → 个性化推荐。
用户管理
POST /api/update_user.php — 更新资料
动态 BUILD UPDATE,只更新传入的非空字段。
POST /api/change_password.php — 修改密码
password_verify() 验证旧密码 → password_hash() 更新。
GET /api/user_profile.php — 用户主页
需要认证(Session),返回当前用户完整信息。
POST /api/delete_account.php — 注销账号
删除用户及其相关内容。
用户行为追踪
POST /api/user_behavior.php — 行为数据同步
前端批量上报用户行为数据(page_view, content_click, recommend_show, recommend_click, page_stay 等),后端批量插入 user_behaviors 表,用于推荐算法训练。
工具/诊断接口
| 端点 | 说明 |
|---|---|
| test_connection.php | 数据库连接测试 |
| check_database.php | 检查数据库和关键表 |
| check_admin.php | 检查当前会话管理员状态 |
| check_admin_setup.php | 检查管理员配置 |
| check_app_data.php | 检查应用数据 |
| check_users_table.php | 检查 users 表结构 |
| check_created_at_format.php | 检查 created_at 格式 |
| check_update.php | 检查更新状态 |
| follow_test.php | 关注功能测试 |
| test_articles.php | 文章功能测试 |
| test_content_system.php | 内容系统测试 |
| simple_articles.php | 简化文章查询 |
| create_content_table.php | 创建 content 表 |
| create_logs_table.php | 创建 logs 表 |
| init_database.php | 初始化数据库 |
| init_images_table.php | 初始化 images 表 |
| import_images.php | 批量导入图片 |
| setup_admin_role.php | 设置管理员角色 |
| update_users_created_at.php | 修复用户创建时间 |
| reset_admin.php | 重置管理员密码 |
| index.php | API 入口/目录 |
| log_helper.php | 日志辅助函数 |
| .htaccess | Apache 重写规则 |
管理接口
所有 admin_*.php 需要管理员权限。
POST /api/admin_login.php — 管理员登录
验证密码后检查 role === 'admin',非管理员返回 403。
GET /api/admin_logout.php — 管理员登出
session_unset() + session_destroy()。
admin_content.php — 内容管理 (CRUD)
管理员对所有内容的完整 CRUD 操作。
admin_users.php — 用户管理 (CRUD)
创建用户时 password_hash() 加密,支持角色分配 (user/admin)。
admin_carousels.php — 轮播图管理 (CRUD)
支持排序、启用/禁用,关联用户表查询作者信息。
admin_follows.php — 关注管理
管理员查看所有关注关系。
admin_messages.php — 消息管理
管理员查看所有私信记录。
admin_recommendations.php — 推荐系统管理
管理推荐算法配置(启用/禁用、权重调整),查看推荐日志和指标。支持版本回滚。
admin_stats.php — 统计面板
系统统计数据。
admin_logs.php — 日志管理
查看系统操作日志。
admin_articles.php — 文章管理
文章 CRUD。
爬虫接口
| 端点 | 说明 |
|---|---|
| crawl_images.php | 爬取外部图片导入 |
| crawl_hotsearch.php | 爬取热搜数据 |
| crawl_douyin_hotsearch.php | 爬取抖音热搜 |
错误码汇总
| code | 说明 |
|---|---|
| 200 | 成功 |
| 201 | 创建成功 |
| 400 | 参数错误 |
| 401 | 未登录 |
| 403 | 非管理员 |
| 404 | 资源不存在 |
| 405 | 方法不允许 |
| 500 | 服务器错误 |
| 501 | 功能未实现 |