| 名称 | 结果 | 详情 |
|---|---|---|
| 登录业务码 code=200 | 通过 | |
| HTTP 状态码 = 201 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 登录返回临时 Token(报告脱敏) | 通过 | |
| 关键返回值|code=200,ok=true | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 菜品基线:items 为数组 | 通过 | |
| 菜品基线:分页字段存在 | 通过 | |
| 关键返回值|code=200,total=18,page=1,pageSize=20,items=18,firstId=99 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 201 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 菜品创建:返回正整数 ID | 通过 | |
| 写入响应:返回正整数 ID | 通过 | |
| 关键返回值|code=200,id=151 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 存在性:exists=true | 通过 | |
| 关键返回值|code=200,dataKeys=exists | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 菜品回查:包含创建 ID | 通过 | |
| 菜品回查:中文、启用、NULL 图片正确 | 通过 | |
| 关键返回值|code=200,total=1,page=1,pageSize=20,items=1,firstId=151 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 菜品更新:ok=true | 通过 | |
| 关键返回值|code=200,ok=true | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 更新回查:名称和备注正确 | 通过 | |
| 更新回查:enabled=false 且图片仍为空 | 通过 | |
| 关键返回值|code=200,total=1,page=1,pageSize=20,items=1,firstId=151 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 201 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 批量导入:success=1 | 通过 | |
| 批量导入:fail=1 且 total=2 | 通过 | |
| 关键返回值|code=200,total=2 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 导入回查:合法红烧茄子存在 | 通过 | |
| 导入回查:超长编号项零写入 | 通过 | |
| 关键返回值|code=200,total=2,page=1,pageSize=50,items=2,firstId=152 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 菜品 CSV:包含中文表头 | 通过 | |
| 菜品 CSV:包含本轮 marker 和中文菜名 | 通过 | |
| 关键返回值|code=200,csvChars=206 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=400 | 通过 | |
| HTTP 状态码 = 400 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 400 | 通过 | |
| 65 字编号:返回 64 字符上限错误 | 通过 | |
| 关键返回值|code=400,message=菜品编号不能超过64个字符 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 65 字编号零写入:total=0 | 通过 | |
| 65 字编号零写入:items 为空 | 通过 | |
| 关键返回值|code=200,total=0,page=1,pageSize=20,items=0 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 人员基线:items 为数组 | 通过 | |
| 关键返回值|code=200,total=3,page=1,pageSize=20,items=3,firstId=900110 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 201 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 人员创建:返回正整数 ID | 通过 | |
| 写入响应:返回正整数 ID | 通过 | |
| 关键返回值|code=200,id=900579 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 人员回查:中文姓名正确 | 通过 | |
| 人员回查:学校、食堂、停用状态正确 | 通过 | |
| 关键返回值|code=200,id=900579 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 201 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 留样人员新增:count=1 | 通过 | |
| 关键返回值|code=200,dataKeys=count | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 留样人员回查:包含本轮人员 ID | 通过 | |
| 留样人员列表:不包含 password 字段 | 通过 | |
| 关键返回值|code=200,total=1,page=1,pageSize=100,items=1,firstId=900579 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 留样人员详情:ID 正确 | 通过 | |
| 留样人员详情:密码专列存在 | 通过 | |
| 关键返回值|code=200,id=900579 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 201 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 留样人员更新:count=1 | 通过 | |
| 关键返回值|code=200,dataKeys=count | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 人员更新回查:中文姓名、时间正确 | 通过 | |
| 人员更新回查:仍不泄露密码 | 通过 | |
| 关键返回值|code=200,total=1,page=1,pageSize=100,items=1,firstId=900579 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=403 | 通过 | |
| HTTP 状态码 = 403 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 403 | 通过 | |
| 跨校菜品:无业务数据 | 通过 | |
| 关键返回值|code=403,message=School access denied | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=401 | 通过 | |
| HTTP 状态码 = 401 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 401 | 通过 | |
| 无 Token:明确返回 Missing token | 通过 | |
| 关键返回值|code=401,message=Missing token | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 登录业务码 code=200 | 通过 | |
| HTTP 状态码 = 201 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 登录返回临时 Token(报告脱敏) | 通过 | |
| 关键返回值|code=200,ok=true | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 菜品基线:items 为数组 | 通过 | |
| 菜品基线:分页字段存在 | 通过 | |
| 关键返回值|code=200,total=18,page=1,pageSize=20,items=18,firstId=99 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 201 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 菜品创建:返回正整数 ID | 通过 | |
| 写入响应:返回正整数 ID | 通过 | |
| 关键返回值|code=200,id=152 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 存在性:exists=true | 通过 | |
| 关键返回值|code=200,dataKeys=exists | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 菜品回查:包含创建 ID | 通过 | |
| 菜品回查:中文、启用、NULL 图片正确 | 通过 | |
| 关键返回值|code=200,total=1,page=1,pageSize=20,items=1,firstId=152 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 菜品更新:ok=true | 通过 | |
| 关键返回值|code=200,ok=true | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 更新回查:名称和备注正确 | 通过 | |
| 更新回查:enabled=false 且图片仍为空 | 通过 | |
| 关键返回值|code=200,total=1,page=1,pageSize=20,items=1,firstId=152 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 201 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 批量导入:success=1 | 通过 | |
| 批量导入:fail=1 且 total=2 | 通过 | |
| 关键返回值|code=200,total=2 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 导入回查:合法红烧茄子存在 | 通过 | |
| 导入回查:超长编号项零写入 | 通过 | |
| 关键返回值|code=200,total=2,page=1,pageSize=50,items=2,firstId=153 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 菜品 CSV:包含中文表头 | 通过 | |
| 菜品 CSV:包含本轮 marker 和中文菜名 | 通过 | |
| 关键返回值|code=200,csvChars=206 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=400 | 通过 | |
| HTTP 状态码 = 400 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 400 | 通过 | |
| 65 字编号:返回 64 字符上限错误 | 通过 | |
| 关键返回值|code=400,message=菜品编号不能超过64个字符 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 65 字编号零写入:total=0 | 通过 | |
| 65 字编号零写入:items 为空 | 通过 | |
| 关键返回值|code=200,total=0,page=1,pageSize=20,items=0 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 人员基线:items 为数组 | 通过 | |
| 关键返回值|code=200,total=3,page=1,pageSize=20,items=3,firstId=900110 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 201 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 人员创建:返回正整数 ID | 通过 | |
| 写入响应:返回正整数 ID | 通过 | |
| 关键返回值|code=200,id=900578 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 人员回查:中文姓名正确 | 通过 | |
| 人员回查:学校、食堂、停用状态正确 | 通过 | |
| 关键返回值|code=200,id=900578 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 201 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 留样人员新增:count=1 | 通过 | |
| 关键返回值|code=200,dataKeys=count | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 留样人员回查:包含本轮人员 ID | 通过 | |
| 留样人员列表:不包含 password 字段 | 通过 | |
| 关键返回值|code=200,total=1,page=1,pageSize=100,items=1,firstId=900578 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 留样人员详情:ID 正确 | 通过 | |
| 留样人员详情:密码专列存在 | 通过 | |
| 关键返回值|code=200,id=900578 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 201 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 留样人员更新:count=1 | 通过 | |
| 关键返回值|code=200,dataKeys=count | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=200 | 通过 | |
| HTTP 状态码 = 200 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 200 | 通过 | |
| 响应包含 data 字段 | 通过 | |
| 人员更新回查:中文姓名、时间正确 | 通过 | |
| 人员更新回查:仍不泄露密码 | 通过 | |
| 关键返回值|code=200,total=1,page=1,pageSize=100,items=1,firstId=900578 | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=403 | 通过 | |
| HTTP 状态码 = 403 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 403 | 通过 | |
| 跨校菜品:无业务数据 | 通过 | |
| 关键返回值|code=403,message=School access denied | 通过 |
| 名称 | 结果 | 详情 |
|---|---|---|
| 业务码 code=401 | 通过 | |
| HTTP 状态码 = 401 | 通过 | |
| 响应正文存在 | 通过 | |
| 响应正文是 JSON | 通过 | |
| 业务码 code = 401 | 通过 | |
| 无 Token:明确返回 Missing token | 通过 | |
| 关键返回值|code=401,message=Missing token | 通过 |