Cloudflare Workers CMS API 是一个基于 Cloudflare Workers 和 D1 数据库的内容管理系统 API,提供了完整的视频、文章、分类、标签、评论等管理功能。
- API 基础路径:
/api - 支持的请求方法:
GET,POST,PUT,DELETE - 响应格式: JSON
- 认证方式: Token 认证
API 返回的错误格式如下:
{
"error": "错误信息"
}- URL:
/api/categories - 方法:
GET - 参数:
sortBy: 排序字段 (order, createTime, name)sortOrder: 排序方向 (asc, desc)
- 响应:
[ { "id": "category:123", "name": "电影", "desc": "电影分类", "order": 1, "createTime": "2024-01-01T00:00:00Z" } ]
- URL:
/api/categories - 方法:
POST - 请求体:
{ "name": "电影", "desc": "电影分类", "order": 1 } - 响应:
{ "id": "category:123", "name": "电影", "desc": "电影分类", "order": 1, "createTime": "2024-01-01T00:00:00Z" }
- URL:
/api/categories/{id} - 方法:
DELETE - 响应:
{ "success": true }
- URL:
/api/tags - 方法:
GET - 响应:
[ { "id": "tag:123", "name": "动作", "createTime": "2024-01-01T00:00:00Z" } ]
- URL:
/api/tags - 方法:
POST - 请求体:
{ "name": "动作" } - 响应:
{ "id": "tag:123", "name": "动作", "createTime": "2024-01-01T00:00:00Z" }
- URL:
/api/tags/{id} - 方法:
DELETE - 响应:
{ "success": true }
- URL:
/api/videos - 方法:
GET - 参数:
id: 视频ID(单个查询)category: 分类IDtag: 标签IDsource: 视频来源search: 搜索关键词recommended: 是否推荐page: 页码pageSize: 每页数量
- 响应:
{ "list": [ { "id": "video:123", "title": "电影标题", "subTitle": "副标题", "desc": "电影描述", "cover": "封面URL", "banner": "Banner URL", "category": "电影", "categoryId": "category:123", "actors": ["演员1", "演员2"], "director": "导演", "writer": "编剧", "recommended": true, "sources": [ { "id": "source:123", "videoId": "video:123", "source": "坚果云", "url": "视频URL", "urls": [ { "label": "第1集", "url": "集数URL" } ] } ] } ], "total": 100, "page": 1, "pageSize": 10 }
- URL:
/api/videos/recommended - 方法:
GET - 响应:
[ { "id": "video:123", "title": "电影标题", "cover": "封面URL", "banner": "Banner URL", "category": "电影" } ]
- URL:
/api/videos/recommended/{id} - 方法:
POST - 请求体:
{ "recommended": true } - 响应:
{ "success": true }
- URL:
/api/videos/{id} - 方法:
DELETE - 响应:
{ "success": true }
- URL:
/api/comments - 方法:
GET - 参数:
videoId: 视频IDepisodeId: 集数IDpage: 页码pageSize: 每页数量
- 响应:
{ "list": [ { "id": "comment:123", "videoId": "video:123", "episodeId": "1", "userId": "user:123", "content": "评论内容", "parentId": null, "likes": 0, "status": "active", "createTime": "2024-01-01T00:00:00Z", "updateTime": "2024-01-01T00:00:00Z", "replies": [ { "id": "comment:456", "videoId": "video:123", "episodeId": "1", "userId": "user:456", "content": "回复内容", "parentId": "comment:123", "likes": 0, "status": "active", "createTime": "2024-01-01T00:00:00Z", "updateTime": "2024-01-01T00:00:00Z" } ] } ], "total": 50, "page": 1, "pageSize": 20 }
- URL:
/api/comments - 方法:
POST - 请求体:
{ "videoId": "video:123", "episodeId": "1", "userId": "user:123", "content": "评论内容", "parentId": null, "currentTime": 120 } - 响应:
{ "id": "comment:123", "videoId": "video:123", "episodeId": "1", "userId": "user:123", "content": "评论内容", "parentId": null, "likes": 0, "status": "active", "createTime": "2024-01-01T00:00:00Z", "updateTime": "2024-01-01T00:00:00Z" }
- URL:
/api/comments/{id}/like - 方法:
POST - 响应:
{ "success": true, "likes": 1 }
- URL:
/api/comments/{id} - 方法:
DELETE - 响应:
{ "success": true }
- URL:
/api/users/login - 方法:
POST - 请求体:
{ "username": "admin", "password": "123456" } - 响应:
{ "success": true, "user": { "id": "user:123", "username": "admin", "nickname": "管理员", "avatar": "", "role": "admin", "status": "active", "token": "token:123", "createTime": "2024-01-01T00:00:00Z", "updateTime": "2024-01-01T00:00:00Z" } }
- URL:
/api/users/register - 方法:
POST - 请求体:
{ "username": "user1", "password": "123456", "nickname": "用户1" } - 响应:
{ "id": "user:456", "username": "user1", "nickname": "用户1", "avatar": "", "role": "user", "status": "active", "createTime": "2024-01-01T00:00:00Z", "updateTime": "2024-01-01T00:00:00Z" }
- URL:
/api/site-config - 方法:
GET - 响应:
{ "id": "config:123", "userId": "user:123", "logo": "logo URL", "title": "网站标题", "bannerCount": 6, "categoryIds": ["category:123", "category:456"], "categoryCols": 4, "categoryRows": 2, "rankingCategoryIds": ["category:123", "category:456"], "rankingCount": 10, "recommendTitle": "猜你喜欢", "links": [ { "name": "链接1", "url": "https://example.com" } ], "createTime": "2024-01-01T00:00:00Z", "updateTime": "2024-01-01T00:00:00Z" }
- URL:
/api/site-config - 方法:
POST - 请求体:
{ "userId": "user:123", "logo": "logo URL", "title": "网站标题", "bannerCount": 6, "categoryIds": ["category:123", "category:456"], "categoryCols": 4, "categoryRows": 2, "rankingCategoryIds": ["category:123", "category:456"], "rankingCount": 10, "recommendTitle": "猜你喜欢", "links": [ { "name": "链接1", "url": "https://example.com" } ] } - 响应:
{ "success": true, "message": "配置更新成功" }
- URL:
/api/upload/image - 方法:
POST - 请求体:
multipart/form-datafile: 图片文件
- 响应:
{ "success": true, "data": { "url": "图片URL" } }
- URL:
/api/video-fetch-sources-data - 方法:
GET - 响应:
{ "success": true, "results": [ { "source": "坚果云", "success": true, "data": { "list": [...] } } ] }
- URL:
/api/video-fetch-sources-data/{sourceName} - 方法:
GET - 响应:
{ "success": true, "data": { "list": [...] } }
- URL:
/api/video-fetch-recommend - 方法:
GET - 响应:
{ "success": true, "data": [ { "name": "电影1", "pic": "封面URL" } ] }