209 lines
4.2 KiB
Plaintext
209 lines
4.2 KiB
Plaintext
老年活动模块接口文档
|
||
=================
|
||
|
||
基础信息
|
||
-------
|
||
- 基础路径: /api/v1/activities
|
||
- 请求方式: REST
|
||
- 数据格式: JSON
|
||
- 认证方式: Bearer Token
|
||
|
||
数据结构
|
||
-------
|
||
|
||
Activity 活动对象:
|
||
{
|
||
id: number, // 活动ID
|
||
title: string, // 活动标题
|
||
description: string, // 活动描述
|
||
time: string, // 活动时间
|
||
location: string, // 活动地点
|
||
category: string, // 活动分类
|
||
capacity: number, // 活动容量
|
||
participants: number,// 参与人数
|
||
status: string, // 活动状态(upcoming/ongoing/ended)
|
||
organizer: { // 组织者信息
|
||
id: number,
|
||
name: string,
|
||
avatar: string,
|
||
phone: string
|
||
},
|
||
cover: string, // 封面图片
|
||
tags: string[], // 活动标签
|
||
price: number, // 活动费用
|
||
requirements?: string[] // 参与要求
|
||
}
|
||
|
||
API 接口
|
||
-------
|
||
|
||
1. 获取活动列表
|
||
GET /api/v1/activities
|
||
|
||
请求参数:
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
| category | string | 否 | 活动分类 |
|
||
| status | string | 否 | 活动状态 |
|
||
| page | number | 否 | 页码,默认1 |
|
||
| size | number | 否 | 每页数量,默认10 |
|
||
|
||
响应示例:
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"total": 100,
|
||
"records": [
|
||
{
|
||
"id": 1,
|
||
"title": "太极拳晨练班",
|
||
"description": "由专业老师指导的太极拳晨练活动",
|
||
"time": "2024-03-21 07:30:00",
|
||
"location": "社区活动中心",
|
||
"category": "sports",
|
||
"capacity": 30,
|
||
"participants": 18,
|
||
"status": "upcoming",
|
||
"organizer": {
|
||
"id": 1,
|
||
"name": "王教练",
|
||
"avatar": "https://example.com/avatar1.jpg",
|
||
"phone": "13800138000"
|
||
},
|
||
"cover": "https://example.com/taichi.jpg",
|
||
"tags": ["运动", "太极拳", "健康"],
|
||
"price": 0
|
||
}
|
||
]
|
||
}
|
||
}
|
||
|
||
2. 获取活动详情
|
||
GET /api/v1/activities/{id}
|
||
|
||
响应示例:
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
// 活动详细信息
|
||
}
|
||
}
|
||
|
||
3. 活动报名
|
||
POST /api/v1/activities/{id}/register
|
||
|
||
请求参数:
|
||
{
|
||
"notes": "需要准备运动服装" // 可选备注
|
||
}
|
||
|
||
响应示例:
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"id": 1,
|
||
"activityId": 1,
|
||
"userId": 10001,
|
||
"status": "confirmed",
|
||
"registrationTime": "2024-03-19 10:00:00",
|
||
"notes": "需要准备运动服装"
|
||
}
|
||
}
|
||
|
||
4. 取消报名
|
||
POST /api/v1/activities/registrations/{id}/cancel
|
||
|
||
响应示例:
|
||
{
|
||
"code": 200,
|
||
"message": "success"
|
||
}
|
||
|
||
5. 获取活动评论
|
||
GET /api/v1/activities/{id}/comments
|
||
|
||
响应示例:
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": [
|
||
{
|
||
"id": 1,
|
||
"activityId": 1,
|
||
"userId": 10001,
|
||
"userName": "张三",
|
||
"userAvatar": "https://example.com/user1.jpg",
|
||
"content": "活动很有意思",
|
||
"createTime": "2024-03-19 15:00:00",
|
||
"likes": 5,
|
||
"images": ["https://example.com/photo1.jpg"]
|
||
}
|
||
]
|
||
}
|
||
|
||
6. 发表评论
|
||
POST /api/v1/activities/{id}/comments
|
||
|
||
请求参数:
|
||
{
|
||
"content": "活动很有意思",
|
||
"images": ["base64图片数据"]
|
||
}
|
||
|
||
7. 获取推荐活动
|
||
GET /api/v1/activities/recommended
|
||
|
||
响应示例:
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": [
|
||
// 推荐活动列表
|
||
]
|
||
}
|
||
|
||
8. 获取用户参与的活动
|
||
GET /api/v1/activities/user/{userId}
|
||
|
||
响应示例:
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": [
|
||
// 用户参与的活动列表
|
||
]
|
||
}
|
||
|
||
错误码说明
|
||
--------
|
||
| 错误码 | 说明 |
|
||
| 200 | 成功 |
|
||
| 400 | 请求参数错误 |
|
||
| 401 | 未授权 |
|
||
| 403 | 禁止访问 |
|
||
| 404 | 资源不存在 |
|
||
| 500 | 服务器内部错误 |
|
||
|
||
注意事项
|
||
-------
|
||
1. 活动报名需要检查:
|
||
- 活动是否已满
|
||
- 用户是否已报名
|
||
- 活动是否已开始
|
||
- 用户是否满足参与要求
|
||
|
||
2. 图片上传要求:
|
||
- 支持格式:jpg、png、gif
|
||
- 单张大小限制:5MB
|
||
- 最多上传9张
|
||
|
||
3. 活动状态自动更新:
|
||
- 到达开始时间自动变更为进行中
|
||
- 结束时间后自动变更为已结束
|
||
|
||
4. 缓存策略:
|
||
- 活动列表缓存:5分钟
|
||
- 活动详情缓存:10分钟
|
||
- 评论列表缓存:1分钟 |