809 lines
16 KiB
Markdown
809 lines
16 KiB
Markdown
|
|
# Tool 模块 API 测试文档
|
|||
|
|
|
|||
|
|
> **版本**:v1.0
|
|||
|
|
> **创建日期**:2026-02-08
|
|||
|
|
> **基础路径**:`/api/front/tool`
|
|||
|
|
> **服务端口**:20822
|
|||
|
|
> **认证方式**:需登录(Header: `Authori-zation`)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 一、接口总览
|
|||
|
|
|
|||
|
|
### 1.1 模块分类
|
|||
|
|
|
|||
|
|
| 模块 | 接口数量 | 说明 |
|
|||
|
|
|------|----------|------|
|
|||
|
|
| 食谱计算器 | 3 | 营养方案计算与采纳 |
|
|||
|
|
| AI营养师 | 4 | AI 对话问答 |
|
|||
|
|
| 饮食打卡 | 8 | 打卡记录管理 |
|
|||
|
|
| 食物百科 | 4 | 食物查询 |
|
|||
|
|
| 营养知识 | 3 | 知识库查询 |
|
|||
|
|
| 打卡社区 | 9 | 社区互动 |
|
|||
|
|
| 积分系统 | 5 | 积分管理 |
|
|||
|
|
| 首页数据 | 4 | 首页聚合数据 |
|
|||
|
|
| 食谱管理 | 3 | 食谱收藏 |
|
|||
|
|
| 文件上传 | 2 | 图片/语音上传 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 二、认证说明
|
|||
|
|
|
|||
|
|
所有接口(除特殊标注外)均需要登录认证:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Header 示例
|
|||
|
|
-H "Authori-zation: eyJhbGciOiJIUzI1NiJ9.xxxxx"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 三、食谱计算器
|
|||
|
|
|
|||
|
|
### 3.1 计算营养方案
|
|||
|
|
|
|||
|
|
#### 基础信息
|
|||
|
|
|
|||
|
|
| 项目 | 值 |
|
|||
|
|
|------|------|
|
|||
|
|
| 请求路径 | `POST /api/front/tool/calculator/calculate` |
|
|||
|
|
| Content-Type | `application/json` |
|
|||
|
|
| 是否鉴权 | **是** |
|
|||
|
|
|
|||
|
|
#### 请求参数
|
|||
|
|
|
|||
|
|
| 参数名 | 类型 | 必填 | 说明 | 校验规则 |
|
|||
|
|
|--------|------|------|------|----------|
|
|||
|
|
| `gender` | String | 是 | 性别 | `male` / `female` |
|
|||
|
|
| `age` | Integer | 是 | 年龄(岁) | 1 ≤ age ≤ 150 |
|
|||
|
|
| `height` | Integer | 是 | 身高(cm) | 50 ≤ height ≤ 250 |
|
|||
|
|
| `dialysis` | Boolean | 是 | 是否透析 | true / false |
|
|||
|
|
| `dialysisType` | String | 否 | 透析类型 | `hemodialysis` / `peritoneal` |
|
|||
|
|
| `dryWeight` | Number | 是 | 干体重(kg) | 20 ≤ dryWeight ≤ 300 |
|
|||
|
|
| `creatinine` | Number | 是 | 血肌酐(μmol/L) | 0 < creatinine ≤ 2000 |
|
|||
|
|
|
|||
|
|
#### 测试用例
|
|||
|
|
|
|||
|
|
##### TC-CALC-01: 男性透析患者计算
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/calculator/calculate' \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-d '{
|
|||
|
|
"gender": "male",
|
|||
|
|
"age": 55,
|
|||
|
|
"height": 170,
|
|||
|
|
"dialysis": true,
|
|||
|
|
"dialysisType": "hemodialysis",
|
|||
|
|
"dryWeight": 65.5,
|
|||
|
|
"creatinine": 850
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**预期响应**
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"message": "success",
|
|||
|
|
"data": {
|
|||
|
|
"id": 100234,
|
|||
|
|
"healthData": {
|
|||
|
|
"eGFR": "7.9",
|
|||
|
|
"standardWeight": "63.0",
|
|||
|
|
"bmi": "22.7",
|
|||
|
|
"bmiStatus": "正常",
|
|||
|
|
"ckdStage": "透析期"
|
|||
|
|
},
|
|||
|
|
"nutritionGoals": {
|
|||
|
|
"protein": "75.6",
|
|||
|
|
"energy": "2205"
|
|||
|
|
},
|
|||
|
|
"foodList": [
|
|||
|
|
{ "number": 1, "name": "谷薯50g", "portion": "5.7" },
|
|||
|
|
{ "number": 2, "name": "淀粉100g", "portion": "0.77" },
|
|||
|
|
{ "number": 3, "name": "绿叶蔬菜200g", "portion": "1" },
|
|||
|
|
{ "number": 4, "name": "瓜果蔬菜200g", "portion": "2" },
|
|||
|
|
{ "number": 5, "name": "奶类230g", "portion": "1" },
|
|||
|
|
{ "number": 6, "name": "肉蛋类50/60g", "portion": "7" },
|
|||
|
|
{ "number": 7, "name": "油脂类10g", "portion": "5.7" }
|
|||
|
|
],
|
|||
|
|
"mealPlan": {
|
|||
|
|
"breakfast": [...],
|
|||
|
|
"lunch": [...],
|
|||
|
|
"dinner": [...]
|
|||
|
|
},
|
|||
|
|
"importantTips": [
|
|||
|
|
"以上配餐由 AI 生成,仅适用于无其他并发症的单纯尿毒症人群",
|
|||
|
|
"透析患者需严格控制水分摄入"
|
|||
|
|
],
|
|||
|
|
"createdAt": "2026-02-08T10:30:00+08:00"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
##### TC-CALC-02: 女性非透析患者计算
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/calculator/calculate' \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-d '{
|
|||
|
|
"gender": "female",
|
|||
|
|
"age": 48,
|
|||
|
|
"height": 160,
|
|||
|
|
"dialysis": false,
|
|||
|
|
"dryWeight": 52,
|
|||
|
|
"creatinine": 180
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
##### TC-CALC-03: 参数校验-年龄超出范围
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/calculator/calculate' \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-d '{
|
|||
|
|
"gender": "male",
|
|||
|
|
"age": 200,
|
|||
|
|
"height": 170,
|
|||
|
|
"dialysis": false,
|
|||
|
|
"dryWeight": 65,
|
|||
|
|
"creatinine": 100
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**预期响应**:`code=400, message 包含"年龄"`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 3.2 获取计算结果详情
|
|||
|
|
|
|||
|
|
#### 基础信息
|
|||
|
|
|
|||
|
|
| 项目 | 值 |
|
|||
|
|
|------|------|
|
|||
|
|
| 请求路径 | `GET /api/front/tool/calculator/result/{id}` |
|
|||
|
|
| 是否鉴权 | **是** |
|
|||
|
|
|
|||
|
|
#### 测试用例
|
|||
|
|
|
|||
|
|
##### TC-CALC-04: 获取计算结果
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/calculator/result/100234' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
##### TC-CALC-05: 查询不存在的结果
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/calculator/result/999999' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**预期响应**:`code=404`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 3.3 采纳营养计划
|
|||
|
|
|
|||
|
|
#### 基础信息
|
|||
|
|
|
|||
|
|
| 项目 | 值 |
|
|||
|
|
|------|------|
|
|||
|
|
| 请求路径 | `POST /api/front/tool/calculator/adopt` |
|
|||
|
|
| Content-Type | `application/json` |
|
|||
|
|
| 是否鉴权 | **是** |
|
|||
|
|
|
|||
|
|
#### 请求参数
|
|||
|
|
|
|||
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|||
|
|
|--------|------|------|------|
|
|||
|
|
| `resultId` | Long | 是 | 计算结果 ID |
|
|||
|
|
|
|||
|
|
#### 测试用例
|
|||
|
|
|
|||
|
|
##### TC-CALC-06: 采纳营养计划
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/calculator/adopt' \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-d '{
|
|||
|
|
"resultId": 100234
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**预期响应**
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"message": "success",
|
|||
|
|
"data": {
|
|||
|
|
"planId": 56789,
|
|||
|
|
"startDate": "2026-02-08",
|
|||
|
|
"endDate": "2026-02-14"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
##### TC-CALC-07: 重复采纳(幂等测试)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 同一 resultId 调用两次
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/calculator/adopt' \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-d '{"resultId": 100234}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**预期响应**:返回已存在的 planId
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 四、AI 营养师
|
|||
|
|
|
|||
|
|
### 4.1 发送消息给 AI 营养师
|
|||
|
|
|
|||
|
|
#### 基础信息
|
|||
|
|
|
|||
|
|
| 项目 | 值 |
|
|||
|
|
|------|------|
|
|||
|
|
| 请求路径 | `POST /api/front/tool/ai-nutritionist/message` |
|
|||
|
|
| Content-Type | `application/json` |
|
|||
|
|
|
|||
|
|
#### 测试用例
|
|||
|
|
|
|||
|
|
##### TC-AI-01: 发送消息
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/ai-nutritionist/message' \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-d '{
|
|||
|
|
"conversationId": "conv_001",
|
|||
|
|
"content": "肾病患者可以吃香蕉吗?"
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 4.2 获取 AI 回复
|
|||
|
|
|
|||
|
|
#### 基础信息
|
|||
|
|
|
|||
|
|
| 项目 | 值 |
|
|||
|
|
|------|------|
|
|||
|
|
| 请求路径 | `GET /api/front/tool/ai-nutritionist/response/{messageId}` |
|
|||
|
|
|
|||
|
|
#### 测试用例
|
|||
|
|
|
|||
|
|
##### TC-AI-02: 获取回复
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/ai-nutritionist/response/12345' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 4.3 获取对话历史
|
|||
|
|
|
|||
|
|
#### 基础信息
|
|||
|
|
|
|||
|
|
| 项目 | 值 |
|
|||
|
|
|------|------|
|
|||
|
|
| 请求路径 | `GET /api/front/tool/ai-nutritionist/history` |
|
|||
|
|
|
|||
|
|
#### 请求参数
|
|||
|
|
|
|||
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|||
|
|
|--------|------|------|------|
|
|||
|
|
| `page` | Integer | 否 | 页码,默认 1 |
|
|||
|
|
| `limit` | Integer | 否 | 每页数量,默认 20 |
|
|||
|
|
| `conversationId` | Long | 否 | 对话 ID |
|
|||
|
|
|
|||
|
|
#### 测试用例
|
|||
|
|
|
|||
|
|
##### TC-AI-03: 获取对话历史
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/ai-nutritionist/history?page=1&limit=20' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 4.4 清空对话历史
|
|||
|
|
|
|||
|
|
#### 测试用例
|
|||
|
|
|
|||
|
|
##### TC-AI-04: 清空对话
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/ai-nutritionist/clear' \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-d '{
|
|||
|
|
"conversationId": "conv_001"
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 五、饮食打卡
|
|||
|
|
|
|||
|
|
### 5.1 提交打卡记录
|
|||
|
|
|
|||
|
|
#### 基础信息
|
|||
|
|
|
|||
|
|
| 项目 | 值 |
|
|||
|
|
|------|------|
|
|||
|
|
| 请求路径 | `POST /api/front/tool/checkin/submit` |
|
|||
|
|
| Content-Type | `application/json` |
|
|||
|
|
|
|||
|
|
#### 测试用例
|
|||
|
|
|
|||
|
|
##### TC-CHECKIN-01: 提交打卡
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/checkin/submit' \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-d '{
|
|||
|
|
"mealType": "breakfast",
|
|||
|
|
"date": "2026-02-08",
|
|||
|
|
"foods": [
|
|||
|
|
{"name": "牛奶", "amount": "250ml"},
|
|||
|
|
{"name": "全麦面包", "amount": "2片"}
|
|||
|
|
],
|
|||
|
|
"images": ["https://cdn.xxx.com/img1.jpg"],
|
|||
|
|
"remark": "早餐清淡"
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 5.2 获取打卡记录列表
|
|||
|
|
|
|||
|
|
#### 请求参数
|
|||
|
|
|
|||
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|||
|
|
|--------|------|------|------|
|
|||
|
|
| `page` | Integer | 否 | 页码 |
|
|||
|
|
| `limit` | Integer | 否 | 每页数量 |
|
|||
|
|
| `date` | String | 否 | 日期筛选 YYYY-MM-DD |
|
|||
|
|
| `mealType` | String | 否 | 餐次:breakfast/lunch/dinner |
|
|||
|
|
|
|||
|
|
#### 测试用例
|
|||
|
|
|
|||
|
|
##### TC-CHECKIN-02: 获取打卡列表
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/checkin/list?page=1&limit=10&date=2026-02-08' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 5.3 获取打卡记录详情
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/checkin/detail/123' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 5.4 获取连续打卡统计
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/checkin/streak' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 5.5 获取打卡日历数据
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/checkin/calendar?yearMonth=2026-02' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 5.6 获取打卡任务列表
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/checkin/tasks' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 5.7 一键复制打卡
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/checkin/copy' \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-d '{
|
|||
|
|
"sourceRecordId": 12345,
|
|||
|
|
"targetDate": "2026-02-08",
|
|||
|
|
"mealType": "lunch"
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 5.8 一键借鉴打卡
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/checkin/learn' \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-d '{
|
|||
|
|
"sourcePostId": 67890,
|
|||
|
|
"targetDate": "2026-02-08",
|
|||
|
|
"mealType": "dinner"
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 六、食物百科
|
|||
|
|
|
|||
|
|
### 6.1 搜索食物
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/food/search?keyword=鸡蛋&category=蛋类&page=1&limit=20' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 6.2 获取食物列表
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/food/list?category=肉类&page=1&limit=20' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 6.3 获取食物详情
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/food/detail/100' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 6.4 获取相似食物推荐
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/food/similar/100' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 七、营养知识
|
|||
|
|
|
|||
|
|
### 7.1 获取营养知识列表
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/knowledge/list?type=article&category=肾病饮食&page=1&limit=10' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 7.2 获取营养知识详情
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/knowledge/detail/50' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 7.3 获取营养素详情
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/knowledge/nutrient/蛋白质' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 八、打卡社区
|
|||
|
|
|
|||
|
|
### 8.1 获取社区内容列表
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/community/list?tab=recommend&page=1&limit=10' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 8.2 获取社区内容详情
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/community/detail/200' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 8.3 发布社区内容
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/community/publish' \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-d '{
|
|||
|
|
"content": "今天的早餐很健康!",
|
|||
|
|
"images": ["https://cdn.xxx.com/img1.jpg"],
|
|||
|
|
"checkinId": 12345
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 8.4 点赞/取消点赞
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/community/like' \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-d '{
|
|||
|
|
"postId": 200,
|
|||
|
|
"isLike": true
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 8.5 收藏/取消收藏
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/community/collect' \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-d '{
|
|||
|
|
"postId": 200,
|
|||
|
|
"isCollect": true
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 8.6 发表评论
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/community/comment' \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-d '{
|
|||
|
|
"postId": 200,
|
|||
|
|
"content": "看起来很不错!",
|
|||
|
|
"parentId": null
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 8.7 获取评论列表
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/community/comment/list/200?page=1&limit=20' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 8.8 关注/取消关注用户
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/community/follow' \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-d '{
|
|||
|
|
"userId": 1001,
|
|||
|
|
"isFollow": true
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 8.9 分享内容
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/community/share' \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-d '{
|
|||
|
|
"postId": 200
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 九、积分系统
|
|||
|
|
|
|||
|
|
### 9.1 获取用户积分信息
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/points/info' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 9.2 获取积分规则
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/points/rules' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 9.3 获取积分流水
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/points/history?type=earn&page=1&limit=20' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 9.4 获取积分兑换列表
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/points/exchange/list' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 9.5 积分兑换
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/points/exchange' \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-d '{
|
|||
|
|
"exchangeId": 10
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 十、首页数据
|
|||
|
|
|
|||
|
|
### 10.1 获取首页数据
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/home/data' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 10.2 获取推荐食谱列表
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/home/recipes?limit=6' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 10.3 获取推荐营养知识
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/home/knowledge?limit=4' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 10.4 获取用户健康档案状态
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/home/health-status' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 十一、食谱管理
|
|||
|
|
|
|||
|
|
### 11.1 获取食谱列表
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/recipe/list?mealType=breakfast&page=1&limit=10' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 11.2 获取食谱详情
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X GET 'http://localhost:20822/api/front/tool/recipe/detail/50' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 11.3 收藏/取消收藏食谱
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/recipe/favorite' \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-d '{
|
|||
|
|
"recipeId": 50,
|
|||
|
|
"isFavorite": true
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 十二、文件上传
|
|||
|
|
|
|||
|
|
### 12.1 上传图片
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/upload/image?type=checkin' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-F "file=@/path/to/image.jpg"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 12.2 上传语音
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://localhost:20822/api/front/tool/upload/voice' \
|
|||
|
|
-H "Authori-zation: YOUR_TOKEN" \
|
|||
|
|
-F "file=@/path/to/voice.mp3"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 十三、错误码说明
|
|||
|
|
|
|||
|
|
| code | message | 说明 |
|
|||
|
|
|------|---------|------|
|
|||
|
|
| 200 | success | 请求成功 |
|
|||
|
|
| 400 | 参数校验失败 | 请求参数不符合校验规则 |
|
|||
|
|
| 401 / 410000 | 未登录 | Token 缺失 |
|
|||
|
|
| 410001 | Token 无效 | Token 格式错误 |
|
|||
|
|
| 410002 | 登录过期 | Token 已过期 |
|
|||
|
|
| 403 | 无权限 | 访问他人数据 |
|
|||
|
|
| 404 | 资源不存在 | 数据不存在 |
|
|||
|
|
| 500 | 系统异常 | 服务端内部错误 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 十四、变更记录
|
|||
|
|
|
|||
|
|
| 版本 | 日期 | 作者 | 变更内容 |
|
|||
|
|
|------|------|------|----------|
|
|||
|
|
| v1.0 | 2026-02-08 | System | 初稿 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
*文档结束*
|