首页 / 文档中心 / 宠物喂食器(ODM 案例) / 喂食计划模块

喂食计划模块

宠物喂食器(ODM 案例) · APP服务端接口

喂食计划鉴权接口文档

概览

  • 基础路径: /api
  • 文档范围: 鉴权路由中的喂食计划接口
  • 鉴权方式: 请求头 X-Token
  • Content-Type: application/json

鉴权头

字段 类型 必填 说明
X-Token string 是 用户登录后获得的 JWT Token

统一响应格式

{
  "code": 200,
  "msg": "操作成功",
  "data": {}
}

返回字段说明

字段 类型 说明
code integer 业务状态码,200 表示成功,其他值表示失败
msg string 响应消息
data object/array/null 业务数据

通用鉴权失败响应

{
  "code": 401,
  "msg": "未登录或登录过期",
  "data": null
}
{
  "code": 401,
  "msg": "登录已过期,请重新登录",
  "data": null
}

喂食计划对象字段说明

字段 类型 说明
id integer 计划 ID
deviceId string 设备唯一标识
time string 喂食时间,格式 HH:mm
amount integer 喂食份量
days string 执行星期,格式如 1,2,3,4,5,6,7
enabled boolean 是否启用
createdAt string 创建时间
updatedAt string 更新时间

1. 获取喂食计划列表

  • 路径: /api/feeding/list
  • 方法: POST
  • 是否鉴权: 是

请求 Body 参数

字段 类型 必填 说明
deviceId string 是 设备唯一标识

请求示例

{
  "deviceId": "dev_001"
}

成功响应示例

{
  "code": 200,
  "msg": "操作成功",
  "data": [
    {
      "id": 1,
      "deviceId": "dev_001",
      "time": "08:30",
      "amount": 20,
      "days": "1,2,3,4,5,6,7",
      "enabled": true,
      "createdAt": "2026-05-09T08:00:00Z",
      "updatedAt": "2026-05-09T08:00:00Z"
    }
  ]
}

返回参数说明

字段 类型 说明
code integer 成功时为 200
msg string 成功时为 操作成功
data array 喂食计划列表
data[].* object 喂食计划对象,字段见上方喂食计划对象字段说明

失败响应示例

{
  "code": 400,
  "msg": "参数错误",
  "data": null
}
{
  "code": 500,
  "msg": "获取计划列表失败",
  "data": null
}

2. 添加喂食计划

  • 路径: /api/feeding/add
  • 方法: POST
  • 是否鉴权: 是

请求 Body 参数

字段 类型 必填 说明
deviceId string 是 设备唯一标识
time string 是 喂食时间,格式 HH:mm
amount integer 是 喂食份量
days string 是 执行星期,格式如 1,2,3,4,5,6,7
enabled boolean 否 是否启用;未传时按 false 的零值进入 handler

请求示例

{
  "deviceId": "dev_001",
  "time": "08:30",
  "amount": 20,
  "days": "1,2,3,4,5,6,7",
  "enabled": true
}

成功响应示例

{
  "code": 200,
  "msg": "计划添加成功",
  "data": {
    "id": 1,
    "deviceId": "dev_001",
    "time": "08:30",
    "amount": 20,
    "days": "1,2,3,4,5,6,7",
    "enabled": true,
    "createdAt": "2026-05-09T08:00:00Z",
    "updatedAt": "2026-05-09T08:00:00Z"
  }
}

返回参数说明

字段 类型 说明
code integer 成功时为 200
msg string 成功时为 计划添加成功
data object 新建的喂食计划
data.* mixed 喂食计划对象字段,见上方喂食计划对象字段说明

失败响应示例

{
  "code": 400,
  "msg": "参数错误",
  "data": null
}
{
  "code": 400,
  "msg": "设备不存在",
  "data": null
}
{
  "code": 400,
  "msg": "无权限,只有管理员可以操作喂食计划",
  "data": null
}

3. 更新喂食计划

  • 路径: /api/feeding/update
  • 方法: POST
  • 是否鉴权: 是

请求 Body 参数

字段 类型 必填 说明
id integer 是 计划 ID
deviceId string 是 设备唯一标识。当前 handler 会校验必填,但 service 实际按 id 查计划,不使用该字段参与更新
time string 否 新喂食时间,格式 HH:mm
amount integer 否 新喂食份量。仅当大于 0 时才会更新
days string 否 新执行星期
enabled boolean 否 新启用状态

请求示例

{
  "id": 1,
  "deviceId": "dev_001",
  "time": "09:00",
  "amount": 25,
  "days": "1,2,3,4,5",
  "enabled": true
}

成功响应示例

{
  "code": 200,
  "msg": "计划更新成功",
  "data": null
}

返回参数说明

字段 类型 说明
code integer 成功时为 200
msg string 成功时为 计划更新成功
data null 无返回数据

失败响应示例

{
  "code": 400,
  "msg": "参数错误",
  "data": null
}
{
  "code": 400,
  "msg": "计划不存在",
  "data": null
}
{
  "code": 400,
  "msg": "无权限,只有管理员可以操作喂食计划",
  "data": null
}

4. 删除喂食计划

  • 路径: /api/feeding/delete
  • 方法: POST
  • 是否鉴权: 是

请求 Body 参数

字段 类型 必填 说明
id integer 是 计划 ID
deviceId string 是 设备唯一标识。当前 handler 会校验必填,但 service 实际按 id 查计划,不使用该字段参与删除

请求示例

{
  "id": 1,
  "deviceId": "dev_001"
}

成功响应示例

{
  "code": 200,
  "msg": "计划已删除",
  "data": null
}

返回参数说明

字段 类型 说明
code integer 成功时为 200
msg string 成功时为 计划已删除
data null 无返回数据

失败响应示例

{
  "code": 400,
  "msg": "参数错误",
  "data": null
}
{
  "code": 400,
  "msg": "计划不存在",
  "data": null
}
{
  "code": 400,
  "msg": "无权限,只有管理员可以操作喂食计划",
  "data": null
}

5. 手动喂食

  • 路径: /api/feeding/manual
  • 方法: POST
  • 是否鉴权: 是

请求 Body 参数

字段 类型 必填 说明
deviceId string 是 设备唯一标识
amount integer 是 本次手动喂食份量

请求示例

{
  "deviceId": "dev_001",
  "amount": 20
}

成功响应示例

{
  "code": 200,
  "msg": "喂食指令已发送",
  "data": {
    "deviceId": "dev_001",
    "userId": 1,
    "userName": "小明",
    "planId": 0,
    "amount": 20,
    "feedTime": 1752297600,
    "createdAt": "2026-05-09T10:00:00Z"
  }
}

返回参数说明

字段 类型 说明
code integer 成功时为 200
msg string 成功时为 喂食指令已发送
data object 本次手动喂食产生的记录
data.* mixed 喂食记录对象字段,见上方喂食记录对象字段说明

失败响应示例

{
  "code": 400,
  "msg": "参数错误",
  "data": null
}
{
  "code": 400,
  "msg": "设备不存在",
  "data": null
}
{
  "code": 400,
  "msg": "设备离线,无法执行喂食",
  "data": null
}
{
  "code": 400,
  "msg": "发送喂食指令失败",
  "data": null
}

附录

说明

  • 获取喂食计划返回数组;无数据时返回空数组,而不是 null。
  • 更新和删除接口的请求体里虽然要求传 deviceId,但当前 service 实现实际是通过 id 查找计划后执行操作,deviceId 仅在 handler 层做必填校验。
  • 喂食计划变更成功后,服务端会尝试把全量计划重新同步到设备;设备离线时会延后同步。
这份文档没解决你的问题?联系我们,技术工程师直接对接。

询价咨询

填写这几项,我们 1 个工作日内回传报价与方案

点「生成询价邮件」会打开你的邮件客户端,正文已自动填好;电脑没配邮件客户端,就点「复制内容」粘到网页邮箱发送,收件人 sunshiyang@xstrive.com。