yl-frontend/api-docs/community-api.txt

203 lines
4.3 KiB
Plaintext
Raw Permalink Normal View History

2024-12-05 21:56:49 +08:00
社区交流模块接口文档
================
基础信息
-------
- 基础路径: /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次/小时