\# 视频模块接口文档 \## 基础信息 - 基础路径: `/api/videos` - 请求头: 需要携带 `Authorization: Bearer {token}` (除了获取视频列表和视频详情) \## 接口列表 \### 1. 上传视频 POST /api/videos/upload // 请求参数 (multipart/form-data) { file: File, // 视频文件 title: string, // 视频标题 description: string, // 视频描述 tags?: string // 视频标签,可选,多个标签用逗号分隔 } // 响应 { code: number, // 200表示成功 message: string, // 响应消息 data: { id: number, // 视频ID title: string, // 视频标题 description: string, // 视频描述 url: string, // 视频URL coverUrl: string, // 封面URL duration: number, // 视频时长(秒) size: number, // 文件大小(字节) status: string, // 状态:DRAFT-草稿,PUBLISHED-已发布,DELETED-已删除 userId: number, // 上传用户ID username: string, // 上传用户名 createdTime: string, // 创建时间 updatedTime: string, // 更新时间 viewCount: number, // 观看次数 likeCount: number, // 点赞次数 tags: string, // 标签 hasLiked: boolean // 当前用户是否已点赞 } } \### 2. 获取视频列表 GET /api/videos?pageNum=1&pageSize=10&keyword=xxx // 请求参数 (query) { pageNum?: number, // 页码,默认1 pageSize?: number, // 每页条数,默认10 keyword?: string // 搜索关键词,可选 } // 响应 { code: number, message: string, data: { records: Array<{ // 视频列表 id: number, title: string, description: string, url: string, coverUrl: string, duration: number, size: number, status: string, userId: number, username: string, createdTime: string, updatedTime: string, viewCount: number, likeCount: number, tags: string, hasLiked: boolean }>, total: number, // 总记录数 size: number, // 每页条数 current: number, // 当前页码 pages: number // 总页数 } } \### 3. 获取视频详情 GET /api/videos/{id} // 响应 { code: number, message: string, data: { id: number, title: string, description: string, url: string, coverUrl: string, duration: number, size: number, status: string, userId: number, username: string, createdTime: string, updatedTime: string, viewCount: number, likeCount: number, tags: string, hasLiked: boolean } } \### 4. 更新视频信息 PUT /api/videos/{id} // 请求体 { title: string, description: string, tags?: string } // 响应 { code: number, message: string, data: VideoDTO // 同上面的视频详情 } \### 5. 删除视频 DELETE /api/videos/{id} // 响应 { code: number, message: string, data: null } \### 6. 视频点赞/取消点赞 POST /api/videos/{id}/like // 响应 { code: number, message: string, data: null } \### 7. 增加观看次数 POST /api/videos/{id}/view // 响应 { code: number, message: string, data: null } \### 8. 获取推荐视频 GET /api/videos/recommend?limit=10 // 请求参数 (query) { limit?: number // 返回数量,默认10 } // 响应 { code: number, message: string, data: Array // 视频列表 } \### 9. 获取相似视频 GET /api/videos/{id}/similar?limit=10 // 请求参数 (query) { limit?: number // 返回数量,默认10 } // 响应 { code: number, message: string, data: Array // 视频列表 } \## 错误码说明 { 200: "操作成功", 400: "请求参数错误", 401: "未登录或token已过期", 403: "无权限执行此操作", 404: "资源不存在", 500: "服务器内部错误" } \## 数据结构 \### VideoDTO { id: number; // 视频ID title: string; // 视频标题 description: string; // 视频描述 url: string; // 视频URL coverUrl: string; // 封面URL duration: number; // 视频时长(秒) size: number; // 文件大小(字节) status: string; // 状态:DRAFT-草稿,PUBLISHED-已发布,DELETED-已删除 userId: number; // 上传用户ID username: string; // 上传用户名 createdTime: string; // 创建时间 updatedTime: string; // 更新时间 viewCount: number; // 观看次数 likeCount: number; // 点赞次数 tags: string; // 标签,多个用逗号分隔 hasLiked: boolean; // 当前用户是否已点赞 }