198 lines
3.7 KiB
Plaintext
198 lines
3.7 KiB
Plaintext
|
膳食管理模块接口文档
|
|||
|
================
|
|||
|
|
|||
|
基础信息
|
|||
|
-------
|
|||
|
- 基础路径: /api/v1/diet
|
|||
|
- 请求方式: REST
|
|||
|
- 数据格式: JSON
|
|||
|
- 认证方式: Bearer Token
|
|||
|
|
|||
|
数据结构
|
|||
|
-------
|
|||
|
|
|||
|
Meal 膳食对象:
|
|||
|
{
|
|||
|
id: number, // 膳食ID
|
|||
|
time: string, // 用餐时间
|
|||
|
name: string, // 膳食名称
|
|||
|
description: string, // 描述
|
|||
|
calories: number, // 热量(kcal)
|
|||
|
nutrition: {
|
|||
|
protein: number, // 蛋白质(g)
|
|||
|
carbs: number, // 碳水化合物(g)
|
|||
|
fat: number // 脂肪(g)
|
|||
|
},
|
|||
|
status: string, // 状态(pending/current/done)
|
|||
|
ingredients: [ // 食材列表
|
|||
|
{
|
|||
|
name: string, // 食材名称
|
|||
|
amount: string // 用量
|
|||
|
}
|
|||
|
]
|
|||
|
}
|
|||
|
|
|||
|
NutritionReport 营养报告:
|
|||
|
{
|
|||
|
dailyCalories: number, // 每日热量
|
|||
|
nutrition: {
|
|||
|
protein: number, // 蛋白质(g)
|
|||
|
carbs: number, // 碳水化合物(g)
|
|||
|
fat: number // 脂肪(g)
|
|||
|
},
|
|||
|
suggestions: string[], // 建议列表
|
|||
|
status: string // 状态(good/warning/bad)
|
|||
|
}
|
|||
|
|
|||
|
API 接口
|
|||
|
-------
|
|||
|
|
|||
|
1. 获取今日膳食
|
|||
|
GET /api/v1/diet/meals/today
|
|||
|
|
|||
|
响应示例:
|
|||
|
{
|
|||
|
"code": 200,
|
|||
|
"message": "success",
|
|||
|
"data": [
|
|||
|
{
|
|||
|
"id": 1,
|
|||
|
"time": "08:00",
|
|||
|
"name": "营养早餐",
|
|||
|
"description": "牛奶燕麦粥配鸡蛋",
|
|||
|
"calories": 300,
|
|||
|
"nutrition": {
|
|||
|
"protein": 15,
|
|||
|
"carbs": 40,
|
|||
|
"fat": 10
|
|||
|
},
|
|||
|
"status": "done",
|
|||
|
"ingredients": [
|
|||
|
{ "name": "燕麦", "amount": "50g" },
|
|||
|
{ "name": "牛奶", "amount": "200ml" },
|
|||
|
{ "name": "鸡蛋", "amount": "1个" }
|
|||
|
]
|
|||
|
}
|
|||
|
]
|
|||
|
}
|
|||
|
|
|||
|
2. 获取营养报告
|
|||
|
GET /api/v1/diet/nutrition/report
|
|||
|
|
|||
|
响应示例:
|
|||
|
{
|
|||
|
"code": 200,
|
|||
|
"message": "success",
|
|||
|
"data": {
|
|||
|
"dailyCalories": 1800,
|
|||
|
"nutrition": {
|
|||
|
"protein": 80,
|
|||
|
"carbs": 250,
|
|||
|
"fat": 60
|
|||
|
},
|
|||
|
"suggestions": [
|
|||
|
"可以适当增加优质蛋白的摄入",
|
|||
|
"建议多补充维生素C",
|
|||
|
"注意补充水分"
|
|||
|
],
|
|||
|
"status": "good"
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
3. 更新用餐状态
|
|||
|
PUT /api/v1/diet/meals/{id}/status
|
|||
|
|
|||
|
请求参数:
|
|||
|
{
|
|||
|
"status": "done" // pending/current/done
|
|||
|
}
|
|||
|
|
|||
|
响应示例:
|
|||
|
{
|
|||
|
"code": 200,
|
|||
|
"message": "success"
|
|||
|
}
|
|||
|
|
|||
|
4. 获取膳食计划
|
|||
|
GET /api/v1/diet/plans/{date}
|
|||
|
|
|||
|
响应示例:
|
|||
|
{
|
|||
|
"code": 200,
|
|||
|
"message": "success",
|
|||
|
"data": {
|
|||
|
"id": 1,
|
|||
|
"date": "2024-03-20",
|
|||
|
"meals": [],
|
|||
|
"totalCalories": 1800,
|
|||
|
"preferences": ["清淡", "少油"],
|
|||
|
"allergies": ["海鲜"]
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
5. 创建膳食计划
|
|||
|
POST /api/v1/diet/plans
|
|||
|
|
|||
|
请求参数:
|
|||
|
{
|
|||
|
"date": "2024-03-21",
|
|||
|
"meals": [],
|
|||
|
"preferences": ["清淡", "少油"],
|
|||
|
"allergies": ["海鲜"]
|
|||
|
}
|
|||
|
|
|||
|
6. 调整膳食
|
|||
|
PUT /api/v1/diet/meals/{id}
|
|||
|
|
|||
|
请求参数:
|
|||
|
{
|
|||
|
"name": "新的膳食名称",
|
|||
|
"calories": 350,
|
|||
|
"ingredients": []
|
|||
|
}
|
|||
|
|
|||
|
7. 获取推荐食谱
|
|||
|
GET /api/v1/diet/recipes/recommended
|
|||
|
|
|||
|
响应示例:
|
|||
|
{
|
|||
|
"code": 200,
|
|||
|
"message": "success",
|
|||
|
"data": [
|
|||
|
{
|
|||
|
"id": 1,
|
|||
|
"name": "清蒸鲈鱼",
|
|||
|
"calories": 200,
|
|||
|
"suitable": ["高蛋白", "低脂肪"]
|
|||
|
}
|
|||
|
]
|
|||
|
}
|
|||
|
|
|||
|
错误码说明
|
|||
|
--------
|
|||
|
| 错误码 | 说明 |
|
|||
|
| 200 | 成功 |
|
|||
|
| 400 | 请求参数错误 |
|
|||
|
| 401 | 未授权 |
|
|||
|
| 403 | 禁止访问 |
|
|||
|
| 404 | 资源不存在 |
|
|||
|
| 500 | 服务器内部错误 |
|
|||
|
|
|||
|
注意事项
|
|||
|
-------
|
|||
|
1. 日期格式统一使用:YYYY-MM-DD
|
|||
|
2. 时间格式统一使用:HH:mm
|
|||
|
3. 营养成分单位:
|
|||
|
- 热量:kcal
|
|||
|
- 蛋白质/碳水/脂肪:g
|
|||
|
4. 食材用量支持的单位:
|
|||
|
- 重量:g、kg
|
|||
|
- 体积:ml、L
|
|||
|
- 个数:个、只、份
|
|||
|
5. 接口调用频率限制:
|
|||
|
- 获取数据接口:10次/分钟
|
|||
|
- 更新数据接口:5次/分钟
|
|||
|
6. 数据缓存策略:
|
|||
|
- 今日膳食:5分钟
|
|||
|
- 营养报告:10分钟
|
|||
|
- 推荐食谱:1小时
|