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小时 |