# Operation 模块接口文档 ## 基础 URL 所有接口的基础路径: `/api/operation/` ## 通用响应格式 所有接口都返回以下格式的响应: ```json { "code": 200, // 状态码,200表示成功 "message": "操作成功", // 操作结果描述 "data": {} // 数据内容,具体格式根据接口不同而变化 } ``` 分页接口的响应格式: ```json { "code": 200, "message": "获取数据成功", "data": { "count": 100, // 总记录数 "next": "http://example.com/api/operation/xxx/?page=2", // 下一页链接,没有下一页则为null "previous": null, // 上一页链接,没有上一页则为null "results": [], // 当前页的数据列表 "page": 1, // 当前页码 "pages": 10, // 总页数 "page_size": 10 // 每页记录数 } } ``` ## 接口列表 ### 1. 运营账号管理 #### 1.1 获取运营账号列表 - **URL**: `/operators/` - **方法**: GET - **参数**: - `page`: 页码,默认1 - `page_size`: 每页记录数,默认10 - **响应示例**: ```json { "code": 200, "message": "获取运营账号列表成功", "data": { "count": 10, "next": null, "previous": null, "results": [ { "id": 1, "uuid": "550e8400-e29b-41d4-a716-446655440000", "username": "operator1", "real_name": "张三", "email": "zhangsan@example.com", "phone": "13800138000", "position": "editor", "department": "内容部", "is_active": true, "created_at": "2023-09-01T10:00:00Z", "updated_at": "2023-09-01T10:00:00Z" } ], "page": 1, "pages": 1, "page_size": 10 } } ``` #### 1.2 获取运营账号详情 - **URL**: `/operators/{id}/` - **方法**: GET - **响应示例**: ```json { "code": 200, "message": "获取运营账号详情成功", "data": { "id": 1, "uuid": "550e8400-e29b-41d4-a716-446655440000", "username": "operator1", "real_name": "张三", "email": "zhangsan@example.com", "phone": "13800138000", "position": "editor", "department": "内容部", "is_active": true, "created_at": "2023-09-01T10:00:00Z", "updated_at": "2023-09-01T10:00:00Z" } } ``` #### 1.3 创建运营账号 - **URL**: `/operators/` - **方法**: POST - **请求参数**: ```json { "username": "operator1", "password": "password123", "real_name": "张三", "email": "zhangsan@example.com", "phone": "13800138000", "position": "editor", "department": "内容部" } ``` - **响应示例**: 同详情接口 #### 1.4 更新运营账号 - **URL**: `/operators/{id}/` - **方法**: PUT/PATCH - **请求参数**: 同创建接口,PATCH 可部分更新 - **响应示例**: 同详情接口 #### 1.5 删除运营账号 - **URL**: `/operators/{id}/` - **方法**: DELETE - **响应示例**: ```json { "code": 200, "message": "运营账号已停用", "data": null } ``` ### 2. 平台账号管理 #### 2.1 获取平台账号列表 - **URL**: `/platforms/` - **方法**: GET - **参数**: - `page`: 页码,默认1 - `page_size`: 每页记录数,默认10 - **响应示例**: ```json { "code": 200, "message": "获取平台账号列表成功", "data": { "count": 10, "next": null, "previous": null, "results": [ { "id": 1, "operator": 1, "operator_name": "张三", "status": "active", "followers_count": 1000, "description": "测试账号", "tags": ["科技", "数码"], "profile_image": "https://example.com/image.jpg", "last_posting": "2023-09-01T10:00:00Z", "created_at": "2023-09-01T10:00:00Z", "updated_at": "2023-09-01T10:00:00Z", "last_login": "2023-09-01T10:00:00Z", "platforms": [ { "platform_name": "youtube", "account_url": "https://youtube.com/channel/123", "account_id": "channel123", "account_name": "测试频道" } ], "name": "youtube" } ], "page": 1, "pages": 1, "page_size": 10 } } ``` #### 2.2 获取平台账号详情 - **URL**: `/platforms/{id}/` - **方法**: GET - **响应示例**: 类似列表但无分页 #### 2.3 创建平台账号 - **URL**: `/platforms/` - **方法**: POST - **请求参数**: ```json { "operator": 1, "name": "Shizuku", "status": "active", "followers_count": 1000, "description": "测试频道", "tags": ["Vlogs", "Foodie"], "profile_image": "https://example.com/image.jpg", "platforms": [ { "platform_name": "youtube", "account_name": "测试频道", "account_id": "channel123", "account_url": "https://youtube.com/channel/123" } ] } ``` - **响应示例**: 同详情接口 #### 2.4 更新平台账号 - **URL**: `/platforms/{id}/` - **方法**: PUT/PATCH - **请求参数**: 同创建接口,PATCH 可部分更新 - **响应示例**: 同详情接口 #### 2.5 删除平台账号 - **URL**: `/platforms/{id}/` - **方法**: DELETE - **响应示例**: ```json { "code": 200, "message": "平台账号已删除", "data": null } ``` #### 2.6 更新粉丝数 - **URL**: `/platforms/{id}/update_followers/` - **方法**: POST - **请求参数**: ```json { "followers_count": 2000 } ``` - **响应示例**: 同详情接口 #### 2.7 更新账号资料 - **URL**: `/platforms/{id}/update_profile/` - **方法**: POST - **请求参数**: ```json { "tags": ["科技", "数码"], "profile_image": "https://example.com/new_image.jpg", "last_posting": "2023-09-02T10:00:00Z" } ``` - **响应示例**: 同详情接口 ### 3. 视频管理 #### 3.1 获取视频列表 - **URL**: `/videos/` - **方法**: GET - **参数**: - `page`: 页码,默认1 - `page_size`: 每页记录数,默认10 - **响应示例**: ```json { "code": 200, "message": "获取视频列表成功", "data": { "count": 10, "next": null, "previous": null, "results": [ { "id": 1, "platform_account": 1, "platform_account_name": "测试频道", "platform_name": "youtube", "title": "测试视频", "description": "这是一个测试视频", "video_url": "https://youtube.com/watch?v=123", "local_path": "/path/to/video.mp4", "thumbnail_url": "https://example.com/thumb.jpg", "status": "published", "views_count": 1000, "likes_count": 100, "comments_count": 50, "shares_count": 20, "tags": ["测试", "视频"], "publish_time": "2023-09-01T10:00:00Z", "video_id": "v123", "created_at": "2023-09-01T10:00:00Z", "updated_at": "2023-09-01T10:00:00Z" } ], "page": 1, "pages": 1, "page_size": 10 } } ``` #### 3.2 获取视频详情 - **URL**: `/videos/{id}/` - **方法**: GET - **响应示例**: 类似列表但无分页 #### 3.3 创建视频 - **URL**: `/videos/` - **方法**: POST - **请求参数**: ```json { "platform_account": 1, "title": "测试视频", "description": "这是一个测试视频", "status": "draft", "tags": ["测试", "视频"] } ``` - **响应示例**: 同详情接口 #### 3.4 更新视频信息 - **URL**: `/videos/{id}/` - **方法**: PUT/PATCH - **请求参数**: 同创建接口,PATCH 可部分更新 - **响应示例**: 同详情接口 #### 3.5 删除视频 - **URL**: `/videos/{id}/` - **方法**: DELETE - **响应示例**: ```json { "code": 200, "message": "视频记录已删除", "data": null } ``` #### 3.6 更新视频统计数据 - **URL**: `/videos/{id}/update_stats/` - **方法**: POST - **请求参数**: ```json { "views_count": 2000, "likes_count": 200, "comments_count": 100, "shares_count": 50 } ``` - **响应示例**: ```json { "code": 200, "message": "视频统计数据更新成功", "data": { "id": 1, "title": "测试视频", "views_count": 2000, "likes_count": 200, "comments_count": 100, "shares_count": 50 } } ``` #### 3.7 发布视频 - **URL**: `/videos/{id}/publish/` - **方法**: POST - **请求参数**: ```json { "video_url": "https://youtube.com/watch?v=123" } ``` - **响应示例**: ```json { "code": 200, "message": "视频已成功发布", "data": { "id": 1, "title": "测试视频", "status": "published", "video_url": "https://youtube.com/watch?v=123", "publish_time": "2023-09-02T10:00:00Z" } } ``` #### 3.8 上传视频 - **URL**: `/videos/upload_video/` - **方法**: POST - **请求参数**: - `video_file`: 视频文件(multipart/form-data) - `platform_account`: 平台账号ID - `title`: 视频标题 - `description`: 视频描述 - `tags`: 视频标签 - **响应示例**: ```json { "code": 200, "message": "视频上传成功", "data": { "id": 1, "title": "测试视频", "status": "draft" } } ``` #### 3.9 手动发布视频 - **URL**: `/videos/{id}/manual_publish/` - **方法**: POST - **请求参数**: ```json { "video_url": "https://youtube.com/watch?v=123" } ``` - **响应示例**: ```json { "code": 200, "message": "视频发布成功", "data": { "id": 1, "title": "测试视频", "status": "published", "video_url": "https://youtube.com/watch?v=123", "publish_time": "2023-09-02T10:00:00Z" } } ``` ## 字段说明 ### 运营账号(OperatorAccount) | 字段名 | 类型 | 说明 | |------------|-----------|--------------------------------------------------| | id | Integer | 自增主键ID | | uuid | UUID | 唯一标识符 | | username | String | 用户名 | | password | String | 密码(创建/更新时传入,不会在响应中返回) | | real_name | String | 真实姓名 | | email | String | 邮箱 | | phone | String | 电话号码 | | position | String | 职位,可选值: editor(编辑)、planner(策划)、operator(运营)、admin(管理员) | | department | String | 部门 | | is_active | Boolean | 是否在职 | | created_at | Datetime | 创建时间 | | updated_at | Datetime | 更新时间 | ### 平台账号(PlatformAccount) | 字段名 | 类型 | 说明 | |----------------|-----------|--------------------------------------------------| | id | Integer | 自增主键ID | | operator | Integer | 关联运营账号ID | | operator_name | String | 运营账号名称(只读) | | name | String | 自定义账户名称,可用于分类和识别不同平台的账号 | | platforms | Array | 平台信息数组,包含平台名称、账号名称、账号ID、账号URL | | status | String | 账号状态,可选值: active(正常)、restricted(限流)、suspended(封禁)、inactive(未激活) | | followers_count| Integer | 粉丝数 | | description | String | 账号描述 | | tags | Array | 标签数组 | | profile_image | String | 账号头像URL | | last_posting | Datetime | 最后发布时间 | | created_at | Datetime | 创建时间 | | updated_at | Datetime | 更新时间 | | last_login | Datetime | 最后登录时间 | ### 视频(Video) | 字段名 | 类型 | 说明 | |----------------------|-----------|--------------------------------------------------| | id | Integer | 自增主键ID | | platform_account | Integer | 关联平台账号ID | | platform_account_name| String | 平台账号名称(只读) | | platform_name | String | 平台名称(只读) | | title | String | 视频标题 | | description | String | 视频描述 | | video_url | String | 视频URL | | local_path | String | 本地存储路径 | | thumbnail_url | String | 缩略图URL | | status | String | 视频状态,可选值: draft(草稿)、scheduled(已排期)、published(已发布)、failed(失败)、deleted(已删除) | | views_count | Integer | 观看次数 | | likes_count | Integer | 点赞数 | | comments_count | Integer | 评论数 | | shares_count | Integer | 分享数 | | tags | Array | 标签数组 | | publish_time | Datetime | 发布时间 | | video_id | String | 视频ID | | created_at | Datetime | 创建时间 | | updated_at | Datetime | 更新时间 |