### ✅ **一、普通用户接口** #### 1. 提交文章 - **URL**: `POST /post` - **请求参数(JSON)**: ```json { "content": "你的文章内容" } ``` - **返回**: ```json { "id": 123, "status": "Pass" } // 或 "Pending"(若需审核) ``` - **说明**:内容含违禁词则拒绝(403),空内容则报错(400) --- #### 2. 点赞文章 - **URL**: `POST /up` - **请求参数(JSON)**: ```json { "id": 123 } ``` - **返回**: ```json { "status": "OK" } ``` --- #### 3. 反对文章(踩) - **URL**: `POST /down` - **请求参数(JSON)**: ```json { "id": 123 } ``` - **返回**: ```json { "status": "OK" } ``` --- #### 4. 发布评论 - **URL**: `POST /comment` - **请求参数(JSON)**: ```json { "content": "评论内容", "submission_id": 123, "parent_comment_id": 0, // 回复父评论时填 ID "nickname": "昵称" // 可为空,自动为“匿名用户” } ``` - **返回**: ```json { "id": 456, "status": "Pass" } ``` - **说明**:违禁词拒绝(403),无效文章或父评论 ID 返回对应错误码 --- #### 5. 上传图片 - **URL**: `POST /upload_pic` - **请求参数**: - 表单字段:`file`(文件),支持 `.png`, `.jpg`, `.jpeg`, `.gif`, `.webp` - **返回**: ```json { "status": "OK", "url": "/img/240510_aBc12.png" } ``` - **限制**:文件大小 ≤10MB,格式正确 --- #### 6. 获取文章状态(是否通过审核) - **URL**: `GET /get/post_state` - **参数(query)**: - `id=123` - **返回**: ```json { "status": "Approved" } // 通过 { "status": "Pending" } // 待审核 { "status": "Rejected" } // 拒绝 { "status": "Deleted or Not Found" } // 不存在 ``` --- #### 7. 获取投诉状态 - **URL**: `GET /get/report_state` - **参数(query)**: - `id=789` - **返回**: ```json { "status": "Approved" } // 已通过 { "status": "Pending" } // 待处理 { "status": "Rejected" } // 已拒绝 ``` --- #### 8. 获取公开文章详情(仅通过审核的) - **URL**: `GET /get/post_info` - **参数(query)**: - `id=123` - **返回**: ```json { "id": 123, "content": "文章内容", "created_at": "2024-05-10T12:00:00+00:00", "updated_at": "2024-05-10T12:00:00+00:00", "upvotes": 5, "downvotes": 1 } ``` --- #### 9. 获取评论列表 - **URL**: `GET /get/comment` - **参数(query)**: - `id=123` - **返回**: ```json [ { "id": 456, "nickname": "张三", "content": "这是一条评论", "parent_comment_id": 0, "upvotes": 2, "downvotes": 0, "created_at": "2024-05-10T12:05:00+00:00" } ] ``` --- #### 10. 获取最新10条文章列表(分页) - **URL**: `GET /get/10_info` - **参数(query)**: - `page=1`(可选,缺省为1) - **返回**: ```json [ { "id": 123, "content": "文章内容", "created_at": "2024-05-10T12:00:00+00:00", "updated_at": "2024-05-10T12:00:00+00:00", "upvotes": 114, "downvotes": 514, "status": "Pass" } ] ``` --- #### 11. 获取系统统计信息 - **URL**: `GET /get/statics` - **返回**: ```json { "posts": 150, "comments": 300, "images": 80 } ``` --- #### 12. 提交投诉 - **URL**: `POST /report` - **请求参数(JSON)**: ```json { "id": 123, "title": "举报标题", "content": "举报原因" } ``` - **返回**: ```json { "id": 101, "status": "OK" } ``` --- ### ✅ **二、管理后台接口(需要 Bearer Token)** > **调用方式**:在请求头加上: > ``` > Authorization: Bearer your_admin_token > ``` #### 1. 查看文章详情(完整信息) - **URL**: `GET /admin/get/post_info` - **参数(query)**: - `id=123` - **返回**: ```json { "id": 123, "content": "文章内容", "created_at": "2024-05-10T12:00:00+00:00", "updated_at": "2024-05-10T12:00:00+00:00", "status": "Pass", "upvotes": 5, "downvotes": 1 } ``` --- #### 2. 审核文章:通过 - **URL**: `POST /admin/approve` - **请求参数(JSON)**: ```json { "id": 123 } ``` - **返回**: ```json { "status": "OK" } ``` --- #### 3. 审核文章:拒绝 - **URL**: `POST /admin/disapprove` - **请求参数(JSON)**: ```json { "id": 123 } ``` - **返回**: ```json { "status": "OK" } ``` --- #### 4. 重新审核文章(置为 Pending) - **URL**: `POST /admin/reaudit` - **请求参数(JSON)**: ```json { "id": 123 } ``` - **返回**: ```json { "status": "OK" } ``` --- #### 5. 删除文章(包括评论) - **URL**: `POST /admin/del_post` - **请求参数(JSON)**: ```json { "id": 123 } ``` - **返回**: ```json { "status": "OK" } ``` --- #### 6. 修改文章内容 - **URL**: `POST /admin/modify_post` - **请求参数(JSON)**: ```json { "id": 123, "content": "新内容" } ``` - **返回**: ```json { "status": "OK" } ``` --- #### 7. 删除评论 - **URL**: `POST /admin/del_comment` - **请求参数(JSON)**: ```json { "id": 456 } ``` - **返回**: ```json { "status": "OK" } ``` --- #### 8. 修改评论 - **URL**: `POST /admin/modify_comment` - **请求参数(JSON)**: ```json { "id": 456, "content": "新内容", "parent_comment_id": 0, "nickname": "新昵称" } ``` - **返回**: ```json { "status": "OK" } ``` --- #### 9. 删除图片 - **URL**: `POST /admin/del_pic` - **请求参数(JSON)**: ```json { "filename": "240510_aBc12.png" } ``` - **返回**: ```json { "status": "OK" } ``` --- #### 10. 管理投诉:通过 - **URL**: `POST /admin/approve_report` - **请求参数(JSON)**: ```json { "id": 101 } ``` - **行为**:标记投诉为通过,并**删除对应文章及其所有评论** --- #### 11. 管理投诉:拒绝 - **URL**: `POST /admin/reject_report` - **请求参数(JSON)**: ```json { "id": 101 } ``` - **返回**: ```json { "status": "OK" } ``` --- #### 12. 开启/关闭审核功能 - **URL**: `POST /admin/need_audit` - **请求参数(JSON)**: ```json { "need_audit": true } // 或 false ``` - **返回**: ```json { "status": "OK" } ``` --- #### 13. 获取当前是否需审核 - **URL**: `GET /admin/get/need_audit` - **返回**: ```json { "status": true } ``` --- #### 14. 获取待审核文章列表 - **URL**: `GET /admin/get/pending_posts` - **返回**: ```json [ { "id": 123, "content": "待审内容", "created_at": "2024-05-10T12:00:00+00:00", "updated_at": "2024-05-10T12:00:00+00:00", "status": "Pending" } ] ``` --- #### 15. 获取被拒绝文章 - **URL**: `GET /admin/get/reject_posts` - **返回**: - 结构同上,仅状态为 "Deny" --- #### 16. 获取所有图片链接(分页) - **URL**: `GET /admin/get/pic_links` - **参数(query)**: - `page=1` - **返回**: ```json [ "/img/240510_aBc12.png", "/img/240510_xYz34.jpg" ] ``` --- #### 17. 获取待处理投诉 - **URL**: `GET /admin/get/pending_reports` - **返回**: ```json [ { "id": 101, "submission_id": 123, "title": "举报标题", "content": "举报内容", "status": "Pending", "created_at": "2024-05-10T12:00:00+00:00" } ] ``` --- #### 18. 下载备份文件 - **URL**: `GET /admin/get/backup` - **返回**:一个 `.zip` 文件,包含数据库和 `img/` 文件夹 --- #### 19. 恢复备份 - **URL**: `POST /admin/recover` - **请求**:上传一个 `.zip` 备份文件(form-data) - **返回**: ```json { "status": "OK" } ``` - **行为**:解压覆盖当前数据库和图片目录 --- ### 🟩 总结说明 | 功能 | 接口路径 | 是否需要 Token | 说明 | | ------------ | --------------------- | -------------- | ------------------------------ | | 提交文章 | `POST /post` | 否 | 含违禁词或空则拒绝 | | 点赞/踩 | `POST /up`, `/down` | 否 | 仅需文章 ID | | 发布评论 | `POST /comment` | 否 | 有合规校验 | | 上传图片 | `POST /upload_pic` | 否 | 仅支持特定格式 | | 获取文章状态 | `GET /get/post_state` | 否 | 无权限限制 | | 提交投诉 | `POST /report` | 否 | 带文章 ID | | 获取统计 | `GET /get/statics` | 否 | 公开数据 | | 后台操作 | 所有 `/admin/...` | ✅ 必须 | 使用 `Bearer your_admin_token` | --- > ✅ 所有返回均为 JSON 格式,状态码 200/201 表示成功,其余为错误(如 400, 403, 404, 500)。