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

203 lines
4.3 KiB
Plaintext
Raw Permalink 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.

社区交流模块接口文档
================
基础信息
-------
- 基础路径: /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次/小时