You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1154 lines
24 KiB

# 吃啥-接口文档
Shuaib编写---2022.7.24
1. 执行错误返回结果实例:
```javascript
{
"code": 500,
"msg": "系统异常!",
"data": null
}
```
2. 静态资源存放相对路径为: /static
3. 传递请求体参数时请以对象的形式传递
4. 本系统已设置跨域,若出现跨域问题请使用代理服务器
5. 数据库信息录入不容易请务必不要随意修改删除破坏,想要测试可以先增加一个🥶
6. 使用方式
1. 在文件夹路径内执行命令 nmp install
2. 使用node命令执行 node app.js或使用pm2挂起
7. 第一次写接口文档,因工作量大我并未测试,如果发现问题可以联系我(QQ: 2631667689)
8. 系统脆弱请手下留情,请求频率别那么那么高
## 一. 信息管理与权限控制子系统(管理员)
### 1.1 用户管理
#### 1. 添加用户
- 接口
请求类型post
请求地址121.37.102.50:3017/user
- 请求体参数
| 参数名 | 数据类型 | 说明 |
| :------: | :------: | ------------------------------------------- |
| userId | String | 用户的唯一标识(255,不可重复,必填,主键) |
| userPwd | String | 用户登录时所用的密码(13,必填) |
| userName | String | 用户的昵称(10) |
| userNumb | String | 用户的电话号码(登录账号)(12,不可重复,必填) |
| userLike | String | 用户的喜好(40) |
| userAdd | String | 用户的住址(50) |
| userGend | String | 用户的性别(2,男或女或未知) |
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```
#### 2. 查询所有用户
- 接口
请求类型get
请求地址121.37.102.50:3017/user
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "查询成功!",
"data": [
{
userAdd: "内蒙古自治区/呼和浩特市/玉泉区"
userGend: "男"
userId: "15899996666"
userLike: "甜食"
userName: "李宝"
userNumb: "15899996667"
userPwd: "2631667689zyx"
},
...
]
}
```
#### 3. 查询单个用户
- 接口
请求类型get
请求地址121.37.102.50:3017/user/{id}
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "查询成功!",
"data": [
{
userAdd: "内蒙古自治区/呼和浩特市/玉泉区"
userGend: "男"
userId: "15899996666"
userLike: "甜食"
userName: "李宝"
userNumb: "15899996667"
userPwd: "2631667689zyx"
}
]
}
```
#### 4. 删除单个用户
- 接口
请求类型delete
请求地址121.37.102.50:3017/user/{id}
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```
#### 5. 更新单个用户
- 接口
请求类型put
请求地址121.37.102.50:17/user
- 请求体参数
| 参数名 | 数据类型 | 说明 |
| :------: | :------: | ------------------------------------------- |
| userId | String | 用户的唯一标识(255,不可重复,必填,主键) |
| userPwd | String | 用户登录时所用的密码(13,必填) |
| userName | String | 用户的昵称(10) |
| userNumb | String | 用户的电话号码(登录账号)(12,不可重复,必填) |
| userLike | String | 用户的喜好(40) |
| userAdd | String | 用户的住址(50) |
| userGend | String | 用户的性别(2,男或女或未知) |
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```
### 1.2 菜谱管理
注意:菜谱的食材组成(menuEle)必须是以|分隔的字符串
#### 1. 上传菜谱图片
- 接口
请求类型post
请求地址121.37.102.50:3017/menu/upload
- 请求体参数
图片文件建议使用element-ui upload图片上传组件
- 返回值示例
```javascript
{
"code": 200,
"msg": "菜谱图片上传成功",
"data": "http://121.37.102.50:3017/static/imgs_menu/b38850190505d2244a886bf00.png"
}
```
#### 2. 添加菜谱
- 接口
请求类型post
请求地址121.37.102.50:3017/menu
- 请求体参数
| 参数名 | 数据类型 | 说明 |
| :-------: | :------: | ----------------------------- |
| menuName | String | 菜谱名称(50,必填) |
| menuId | String | 菜谱的唯一标识(11,必填,主键) |
| menuEle | String | 菜谱组成(100,必填,使用\|分隔) |
| menuTaste | String | 菜谱口味(50,必填) |
| menuCuis | String | 菜谱菜系(20,必填) |
| menuBrief | String | 菜谱简介(255) |
| menuLevel | Int | 菜谱制作难度(11,1-5) |
| menuPut | String | 菜谱静态图片地址(255) |
| menuPrice | Double | 菜谱价格(7,必填) |
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```
#### 3. 查询所有菜谱
- 接口
请求类型get
请求地址121.37.102.50:3017/menu
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "查询成功!",
"data": [
{
menuBrief: "步骤1把鸭腿猪爪焯出来鲜鲍鱼洗净发干海参\n步骤2金华火腿鲍鱼蒸熟五花 肉焯水,冬菇冬笋,鸽子蛋煮好\n步骤3炒鸭腿猪爪\n步骤4再放入其他肉类加高 汤,冬菇和笋最后放\n步骤5砂锅炖5个小时\n步骤6收汁盛出\n步骤7周围摆上西 兰花和鸽子(鹌鹑)蛋,滋补"
menuCuis: "闽菜"
menuEle: "海参|鱼翅|鲍鱼|花菇|文蛤|瑶柱|草虾|冬笋|猪爪"
menuId: "0292ffe-4"
menuLevel: 5
menuName: "佛跳墙"
menuPrice: 68
menuPut: "http://121.37.102.50:3017/static/imgs_menu/b38850190505d2244a886bf00.png"
menuTaste: "鲜香"
},
...
]
}
```
#### 4. 查询单个菜谱
- 接口
请求类型get
请求地址121.37.102.50:3017/menu/{id}
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "查询成功!",
"data": [
{
menuBrief: "步骤1把鸭腿猪爪焯出来鲜鲍鱼洗净发干海参\n步骤2金华火腿鲍鱼蒸熟五花 肉焯水,冬菇冬笋,鸽子蛋煮好\n步骤3炒鸭腿猪爪\n步骤4再放入其他肉类加高 汤,冬菇和笋最后放\n步骤5砂锅炖5个小时\n步骤6收汁盛出\n步骤7周围摆上西 兰花和鸽子(鹌鹑)蛋,滋补"
menuCuis: "闽菜"
menuEle: "海参|鱼翅|鲍鱼|花菇|文蛤|瑶柱|草虾|冬笋|猪爪"
menuId: "0292ffe-4"
menuLevel: 5
menuName: "佛跳墙"
menuPrice: 68
menuPut: "http://121.37.102.50:3017/static/imgs_menu/b38850190505d2244a886bf00.png"
menuTaste: "鲜香"
}
]
}
```
#### 5. 删除单个菜谱
- 接口
请求类型delete
请求地址121.37.102.50:3017/menu/{id}
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```
#### 6. 更新单个菜谱
- 接口
请求类型put
请求地址121.37.102.50:3017/menu
- 请求体参数
| 参数名 | 数据类型 | 说明 |
| :-------: | :------: | ----------------------------- |
| menuName | String | 菜谱名称(50,必填) |
| menuId | String | 菜谱的唯一标识(11,必填,主键) |
| menuEle | String | 菜谱组成(100,必填,使用\|分隔) |
| menuTaste | String | 菜谱口味(50,必填) |
| menuCuis | String | 菜谱菜系(20,必填) |
| menuBrief | String | 菜谱简介(255) |
| menuLevel | Int | 菜谱制作难度(11,1-5) |
| menuPut | String | 菜谱静态图片地址(255) |
| menuPrice | Double | 菜谱价格(7,必填) |
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```
### 1.3 食材管理
#### 1. 上传食材图片
- 接口
请求类型post
请求地址121.37.102.50:3017/ingredient/upload
- 请求体参数
图片文件建议使用element-ui upload图片上传组件
- 返回值示例
```javascript
{
"code": 200,
"msg": "食材图片上传成功",
"data": "http://121.37.102.50:3017/static/imgs_ingredient/9b40f16431477b08e9019441f.png"
}
```
#### 2. 添加食材
- 接口
请求类型post
请求地址121.37.102.50:3017/ingredient
- 请求体参数
| 参数名 | 数据类型 | 说明 |
| :--------: | :------: | ---------------------------- |
| ingreName | String | 食材名称(50,必填) |
| ingreId | String | 食材的唯一标识(11,必填,主键) |
| ingreAdd | String | 食材产地(50) |
| ingreAttr | String | 食材属性(50) |
| ingrePut | String | 食材静态图片地址(255) |
| ingrePrice | Double | 食材价格(10) |
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```
#### 3. 查询所有食材
- 接口
请求类型get
请求地址121.37.102.50:3017/ingredient
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "查询成功!",
"data": [
{
ingreAdd: "北京市/北京城区/西城区"
ingreAttr: "温"
ingreId: "0271ee3-2"
ingreName: "鸡肉"
ingrePrice: 28
ingrePut: "http://121.37.102.50:3017/static/imgs_ingredient/9b40f16431477b08e9019441f.png"
},
...
]
}
```
#### 4. 查询单个食材
- 接口
请求类型get
请求地址121.37.102.50:3017/ingredient/{id}
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "查询成功!",
"data": [
{
ingreAdd: "北京市/北京城区/西城区"
ingreAttr: "温"
ingreId: "0271ee3-2"
ingreName: "鸡肉"
ingrePrice: 28
ingrePut: "http://121.37.102.50:3017/static/imgs_ingredient/9b40f16431477b08e9019441f.png"
}
]
}
```
#### 5. 删除单个食材
- 接口
请求类型delete
请求地址121.37.102.50:3017/ingredient/{id}
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```
#### 6. 更新单个食材
- 接口
请求类型put
请求地址121.37.102.50:3017/ingredient
- 请求体参数
| 参数名 | 数据类型 | 说明 |
| :--------: | :------: | ---------------------------- |
| ingreName | String | 食材名称(50,必填) |
| ingreId | String | 食材的唯一标识(11,必填,主键) |
| ingreAdd | String | 食材产地(50) |
| ingreAttr | String | 食材属性(50) |
| ingrePut | String | 食材静态图片地址(255) |
| ingrePrice | Double | 食材价格(10) |
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```
### 1.4 管理员管理
#### 1. 添加管理员
- 接口
请求类型post
请求地址121.37.102.50:3017/admin
- 请求体参数
| 参数名 | 数据类型 | 说明 |
| :------------: | :------: | -------------------------------------------------------- |
| adminId | String | 管理员的唯一标识(255,不可重复,必填,主键) |
| adminNumb | String | 管理员联系方式(11,不可重复,必填) |
| adminName | String | 管理员的昵称(10) |
| power | Int | 最高管理员(管理管理员)权限(1,必填,只有一位,手动录入为1) |
| adminPass | String | 管理员登陆密码(13必填) |
| adminAcco | String | 管理员账号(7,必填,不可重复) |
| menuAuth | Int | 管理菜谱权限(1,1->拥有权力或0->没有权力) |
| ingredientAuth | Int | 管理食材权限(1,1->拥有权力或0->没有权力) |
| userAuth | Int | 管理用户权限(1,1->拥有权力或0->没有权力) |
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```
#### 2. 查询所有管理员
- 接口
请求类型get
请求地址121.37.102.50:3017/admin
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "查询成功!",
"data": [
{
adminAcco: "bd9e67f"
adminId: "2ed90fe4-f561-44df-b586-3337c9be3220"
adminName: "俊南"
adminNumb: "15024930876"
ingredientAuth: 0
menuAuth: 0
power: 0
userAuth: 1
},
...
]
}
```
#### 3. 查询单个管理员
- 接口
请求类型get
请求地址121.37.102.50:3017/admin/{id}
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "查询成功!",
"data": [
{
adminAcco: "bd9e67f"
adminId: "2ed90fe4-f561-44df-b586-3337c9be3220"
adminName: "俊南"
adminNumb: "15024930876"
ingredientAuth: 0
menuAuth: 0
power: 0
userAuth: 1
}
]
}
```
#### 4. 删除单个管理员
- 接口
请求类型delete
请求地址121.37.102.50:3017/admin/{id}
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```
#### 5. 更新单个用户
- 接口
请求类型put
请求地址121.37.102.50:3017/admin
- 请求体参数
| 参数名 | 数据类型 | 说明 |
| :------------: | :------: | -------------------------------------------------------- |
| adminId | String | 管理员的唯一标识(255,不可重复,必填,主键) |
| adminNumb | String | 管理员联系方式(11,不可重复,必填) |
| adminName | String | 管理员的昵称(10) |
| power | Int | 最高管理员(管理管理员)权限(1,必填,只有一位,手动录入为1) |
| adminPass | String | 管理员登陆密码(13必填) |
| adminAcco | String | 管理员账号(7,必填,不可重复) |
| menuAuth | Int | 管理菜谱权限(1,1->拥有权力或0->没有权力) |
| ingredientAuth | Int | 管理食材权限(1,1->拥有权力或0->没有权力) |
| userAuth | Int | 管理用户权限(1,1->拥有权力或0->没有权力) |
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```
#### 6. 重置管理员密码
- 接口
请求类型post
请求地址121.37.102.50:3017/admin/password/{id}
- 请求体参数
| 参数名 | 数据类型 | 说明 |
| -------- | -------- | ------------------------ |
| password | String | 管理员登陆密码(13必填) |
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```
#### 7. 管理员登录
- 接口
请求类型get
请求地址121.37.102.50:3017/admin/login/{adminAcco}
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "查询成功!",
"data": [
{
adminAcco: "bd9e67f"
adminId: "2ed90fe4-f561-44df-b586-3337c9be3220"
adminName: "俊南"
adminNumb: "15024930876"
ingredientAuth: 0
menuAuth: 0
power: 0
userAuth: 1
}
]
}
```
## 二. 用户端子系统
### 2.1 菜谱相关
#### 1. 模糊查询菜谱
注意模糊查询传递的keyword参数必须为以|分隔的字符串,系统将从菜谱名称(menuName), 菜谱组成(menuEle),菜谱口味 (menuTaste), 菜谱菜系(menuCuis)四个属性中进行模糊查询。
- 接口
请求类型get
请求地址121.37.102.50:3017/menu/searchlike/{keyword}
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "查询成功!",
"data": [
{
menuBrief: "步骤1把鸭腿猪爪焯出来鲜鲍鱼洗净发干海参\n步骤2金华火腿鲍鱼蒸熟五花肉焯水冬菇冬笋鸽子蛋煮好\n步骤3炒鸭腿猪爪\n步骤4再放入其他肉类加高汤冬菇和笋最后放\n步骤5砂锅炖5个小时\n步骤6收汁盛出\n步骤7周围摆上西兰花和鸽子鹌鹑滋补"
menuCuis: "闽菜"
menuEle: "海参|鱼翅|鲍鱼|花菇|文蛤|瑶柱|草虾|冬笋|猪爪"
menuId: "0292ffe-4"
menuLevel: 5
menuName: "佛跳墙"
menuPrice: 68
menuPut: "http://121.37.102.50:3017/static/imgs_menu/b38850190505d2244a886bf00.png"
menuTaste: "鲜香"
},
...
]
}
```
#### 2. 根据多个菜谱Id查询多个菜谱和菜谱历史记录
注意传递的id数据每一项必须为id字符串
- 接口
请求类型post
请求地址121.37.102.50:3017/menu/user/menuinfo
- 请求体参数
| 参数名 | 数据类型 | 说明 |
| ---------- | ------------ | -------------------- |
| menuIdsArr | List数组 | 需要查询的菜谱id数组 |
- 返回值示例
```javascript
{
"code": 200,
"msg": "查询成功!",
"data": [
count: 1
createTime: "2022-07-15 14:21:47"
menuBrief: "步骤1将苦瓜洗净一剖为二刮去内瓤切成薄片。\n步骤2把薄如纸片的苦瓜放进烧滚的开水里片刻后捞起。\n步骤3放入少许盐然后根据口味放入准备好的甜、酸、辣等调味品拌匀后即可食用。"
menuCuis: "粤菜"
menuEle: "苦瓜|豆瓣酱|酱油|蒜泥"
menuId: "a109fe9-6"
menuLevel: 1
menuName: "凉拌苦瓜"
menuPrice: 15
menuPut: "http://121.37.102.50:3017/static/imgs_menu/b58376487eec3b86d136d560e.png"
menuTaste: "苦涩"
modifyTime: "2022-07-15T06:22:07.000Z"
recordId: "0620585b-6ee1-4604-9884-e906d9ba779a"
userId: "1d57905f-6cfc-4b49-8c04-692ee6829a3b"
]
}
```
### 2.2 用户相关
#### 1. 修改密码
- 接口
请求类型post
请求地址121.37.102.50:3017/user/password{id}
- 请求体参数
| 参数名 | 数据类型 | 说明 |
| -------- | -------- | -------------------- |
| password | String | 用户所需要修改的密码 |
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```
#### 2. 用户登录
- 接口
请求类型get
请求地址121.37.102.50:3017/user/login/{userNumb}
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "查询成功!",
"data": [
{
userAdd: "内蒙古自治区/呼和浩特市/玉泉区"
userGend: "男"
userId: "15899996666"
userLike: "甜食"
userName: "李宝"
userNumb: "15899996667"
userPwd: "2631667689zyx"
}
]
}
```
#### 3. 忘记密码
注意:本系统只做学习使用,密码无任何价值
- 接口
请求类型get
请求地址121.37.102.50:3017/user/login/forgetpass/{number}
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "查询成功!",
"data": [
{
userPwd: "2631667689zyx"
}
]
}
```
#### 4. 用户注册
- 接口
请求类型post
请求地址121.37.102.50:3017/user/register
- 请求体参数
| 参数名 | 数据类型 | 说明 |
| -------- | -------- | ------------------------------------------- |
| userId | String | 用户的唯一标识(255,不可重复,必填,主键) |
| userPwd | String | 用户登录时所用的密码(13,必填) |
| userNumb | String | 用户的电话号码(登录账号)(12,不可重复,必填) |
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```
### 2.3 菜谱历史记录相关
#### 1. 添加菜谱历史记录
- 接口
请求类型post
请求地址121.37.102.50:3017/record
- 请求体参数
| 参数名 | 数据类型 | 说明 |
| ---------- | -------- | -------------------------------------------- |
| recordId | String | 菜谱历史记录唯一标识(255,不可重复,必填,主键) |
| userId | String | 用户的唯一标识(255,不可重复,必填,外键) |
| menuId | String | 菜谱的唯一标识(11,必填,外键) |
| createTime | String | 菜谱历史记录创建时间(255,必填) |
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```
#### 2. 删除单个菜谱历史记录
- 接口
请求类型delete
请求地址121.37.102.50:3017/record/{recordId}
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```
#### 3. 查询单个用户的菜谱历史记录
- 接口
请求类型get
请求地址121.37.102.50:3017/record/{userId}
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "查询成功!",
"data": [
{
count: 1
createTime: "2022-07-15 14:21:47"
menuId: "a109fe9-6"
modifyTime: "2022-07-15T06:22:07.000Z"
recordId: "0620585b-6ee1-4604-9884-e906d9ba779a"
userId: "1d57905f-6cfc-4b49-8c04-692ee6829a3b"
},
...
]
}
```
#### 4. 删除单个用户的菜谱历史记录
- 接口
请求类型delete
请求地址121.37.102.50:3017/record/user/{userId}
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```
#### 5. 删除单个菜谱历史记录
- 接口
请求类型delete
请求地址121.37.102.50:3017/record/{recordId}
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```
#### 6. 更新单个菜谱历史记录
注意:更新菜谱历史记录只对菜谱记录次数(count)加1
- 接口
请求类型put
请求地址121.37.102.50:3017/record/{recordId}
- 请求体参数
- 返回值示例
```javascript
{
"code": 200,
"msg": "更新成功!",
"data": null
}
```