This repository has been archived on 2026-02-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
v1-backend/API文档.md
2025-10-09 22:03:51 +08:00

462 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### ✅ **一、普通用户接口**
#### 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