203 lines
4.3 KiB
Plaintext
203 lines
4.3 KiB
Plaintext
|
社区交流模块接口文档
|
|||
|
================
|
|||
|
|
|||
|
基础信息
|
|||
|
-------
|
|||
|
- 基础路径: /api/v1/community
|
|||
|
- 请求方式: REST
|
|||
|
- 数据格式: JSON
|
|||
|
- 认证方式: Bearer Token
|
|||
|
|
|||
|
数据结构
|
|||
|
-------
|
|||
|
|
|||
|
Post 帖子对象:
|
|||
|
{
|
|||
|
id: number, // 帖子ID
|
|||
|
title: string, // 标题
|
|||
|
content: string, // 内容
|
|||
|
createTime: string, // 发布时间
|
|||
|
author: { // 作者信息
|
|||
|
id: number,
|
|||
|
name: string,
|
|||
|
avatar: string
|
|||
|
},
|
|||
|
images?: string[], // 图片列表
|
|||
|
tags: string[], // 标签
|
|||
|
likes: number, // 点赞数
|
|||
|
comments: number, // 评论数
|
|||
|
isLiked: boolean, // 是否已点赞
|
|||
|
isFollowing: boolean // 是否已关注作者
|
|||
|
}
|
|||
|
|
|||
|
Topic 话题对象:
|
|||
|
{
|
|||
|
id: number, // 话题ID
|
|||
|
rank: number, // 排名
|
|||
|
title: string, // 标题
|
|||
|
hot: string // 热度
|
|||
|
}
|
|||
|
|
|||
|
Comment 评论对象:
|
|||
|
{
|
|||
|
id: number, // 评论ID
|
|||
|
postId: number, // 帖子ID
|
|||
|
userId: number, // 用户ID
|
|||
|
userName: string, // 用户名
|
|||
|
content: string, // 评论内容
|
|||
|
time: string, // 评论时间
|
|||
|
likes: number, // 点赞数
|
|||
|
replies?: Comment[] // 回复列表
|
|||
|
}
|
|||
|
|
|||
|
API 接口
|
|||
|
-------
|
|||
|
|
|||
|
1. 获取帖子列表
|
|||
|
GET /api/v1/community/posts
|
|||
|
|
|||
|
请求参数:
|
|||
|
| 参数名 | 类型 | 必填 | 说明 |
|
|||
|
| category | string | 否 | 分类 |
|
|||
|
| page | number | 否 | 页码,默认1 |
|
|||
|
| size | number | 否 | 每页数量,默认10 |
|
|||
|
| keyword | string | 否 | 搜索关键词 |
|
|||
|
|
|||
|
响应示例:
|
|||
|
{
|
|||
|
"code": 200,
|
|||
|
"message": "success",
|
|||
|
"data": {
|
|||
|
"total": 100,
|
|||
|
"records": [
|
|||
|
{
|
|||
|
"id": 1,
|
|||
|
"title": "今天参加了太极拳课程",
|
|||
|
"content": "今天和社区的老朋友们一起学习太极拳,感觉特别好!",
|
|||
|
"createTime": "2024-03-20 10:30",
|
|||
|
"author": {
|
|||
|
"id": 1,
|
|||
|
"name": "张大爷",
|
|||
|
"avatar": "https://example.com/avatar1.jpg"
|
|||
|
},
|
|||
|
"images": [
|
|||
|
"https://example.com/taichi1.jpg",
|
|||
|
"https://example.com/taichi2.jpg"
|
|||
|
],
|
|||
|
"tags": ["太极拳", "健康运动", "社区活动"],
|
|||
|
"likes": 28,
|
|||
|
"comments": 12,
|
|||
|
"isLiked": false,
|
|||
|
"isFollowing": false
|
|||
|
}
|
|||
|
]
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
2. 发布帖子
|
|||
|
POST /api/v1/community/posts
|
|||
|
|
|||
|
请求参数:
|
|||
|
{
|
|||
|
"title": "分享一个养生小妙方",
|
|||
|
"content": "每天坚持喝一杯蜂蜜水,对身体很有好处...",
|
|||
|
"tags": ["养生", "健康", "生活分享"],
|
|||
|
"images": ["base64图片数据"]
|
|||
|
}
|
|||
|
|
|||
|
3. 获取热门话题
|
|||
|
GET /api/v1/community/topics/hot
|
|||
|
|
|||
|
响应示例:
|
|||
|
{
|
|||
|
"code": 200,
|
|||
|
"message": "success",
|
|||
|
"data": [
|
|||
|
{
|
|||
|
"id": 1,
|
|||
|
"rank": 1,
|
|||
|
"title": "健康养生",
|
|||
|
"hot": "999+"
|
|||
|
}
|
|||
|
]
|
|||
|
}
|
|||
|
|
|||
|
4. 获取活跃用户
|
|||
|
GET /api/v1/community/users/active
|
|||
|
|
|||
|
响应示例:
|
|||
|
{
|
|||
|
"code": 200,
|
|||
|
"message": "success",
|
|||
|
"data": [
|
|||
|
{
|
|||
|
"id": 1,
|
|||
|
"name": "李奶奶",
|
|||
|
"avatar": "https://example.com/avatar2.jpg",
|
|||
|
"signature": "快乐生活每一天",
|
|||
|
"isFollowing": true
|
|||
|
}
|
|||
|
]
|
|||
|
}
|
|||
|
|
|||
|
5. 关注/取消关注用户
|
|||
|
POST /api/v1/community/users/{id}/follow
|
|||
|
|
|||
|
6. 点赞/取消点赞帖子
|
|||
|
POST /api/v1/community/posts/{id}/like
|
|||
|
|
|||
|
7. 获取评论列表
|
|||
|
GET /api/v1/community/posts/{id}/comments
|
|||
|
|
|||
|
8. 添加评论
|
|||
|
POST /api/v1/community/posts/{id}/comments
|
|||
|
|
|||
|
请求参数:
|
|||
|
{
|
|||
|
"content": "评论内容",
|
|||
|
"parentId": null // 回复其他评论时设置
|
|||
|
}
|
|||
|
|
|||
|
9. 上传图片
|
|||
|
POST /api/v1/community/upload
|
|||
|
Content-Type: multipart/form-data
|
|||
|
|
|||
|
10. 获取推荐帖子
|
|||
|
GET /api/v1/community/posts/recommended
|
|||
|
|
|||
|
错误码说明
|
|||
|
--------
|
|||
|
| 错误码 | 说明 |
|
|||
|
| 200 | 成功 |
|
|||
|
| 400 | 请求参数错误 |
|
|||
|
| 401 | 未授权 |
|
|||
|
| 403 | 禁止访问 |
|
|||
|
| 404 | 资源不存在 |
|
|||
|
| 500 | 服务器内部错误 |
|
|||
|
|
|||
|
注意事项
|
|||
|
-------
|
|||
|
1. 图片上传要求:
|
|||
|
- 支持格式:jpg、png、gif
|
|||
|
- 单张大小限制:5MB
|
|||
|
- 每篇帖子最多9张图片
|
|||
|
|
|||
|
2. 评论规则:
|
|||
|
- 支持多级回复
|
|||
|
- 单条评论字数限制:200字
|
|||
|
- 评论需遵守社区规范
|
|||
|
|
|||
|
3. 内容审核:
|
|||
|
- 帖子和评论发布前需经过敏感词过滤
|
|||
|
- 图片需进行内容安全检测
|
|||
|
- 违规内容将被自动屏蔽
|
|||
|
|
|||
|
4. 缓存策略:
|
|||
|
- 帖子列表缓存:5分钟
|
|||
|
- 热门话题缓存:1小时
|
|||
|
- 活跃用户缓存:30分钟
|
|||
|
|
|||
|
5. 访问频率限制:
|
|||
|
- 发帖:10次/小时
|
|||
|
- 评论:20次/小时
|
|||
|
- 点赞:100次/小时
|