AI陪伴机器人API设计-api-users到api-alerts的二十个接口
05-API设计-api-users到api-alerts的二十个接口黒漂技术佬 · AI 伙伴AI-Partner「数据接口部署与二次开发」系列 05数据层拆完了这篇上到接口层。AI 伙伴后端一共 9 个 Controller、19 个 HTTP 接口全部基于http://localhost:8080暴露。这篇逐个列出来讲清楚前缀划分的思路、根路径 HomeController 的用意以及接口版本化这个它没做、但你应该做的事。一、九个控制器总览Controller路由前缀接口数职责UserController/api/users1用户查找/注册ChatController/api/chat1陪伴对话核心接口ReminderController/api/reminders3提醒增/查/取消EmotionController/api/emotions2情绪记录/查询HealthController/api/health2健康记录/趋势DeviceController/api/devices4设备注册/绑定/列表/控制VisionController/api/vision2图片检测/跌倒检测AlertController/api/alerts2告警查询/状态流转HomeController无前缀2首页元信息/健康检查前缀划分遵循的是资源域一个业务域一个前缀域内再分动作。写代码找接口时按域定位看日志时按前缀归类一目了然。二、逐控制器接口清单2.1 用户与对话HTTP路径参数返回作用POST/api/usersBodyopenId必填、platform默认 web、nicknameApiResponseUser按openId查找或创建用户登录即注册POST/api/chatBodyuserId必填、message必填、sessionType默认 text、needTts默认 falseApiResponseChatResult发起一轮陪伴对话返回回复文本、audioUrl、耗时、conversationId/api/chat是全项目的中枢一次调用会触发调大模型 → 工具副作用落库 → 对话存档 → 可选 TTS的完整链路。2.2 提醒HTTP路径参数返回作用POST/api/remindersBodyuserId必填、title必填、content、remindTime、type默认 custom、cron、deviceIdApiResponseReminder创建提醒GET/api/remindersQueryuserIdApiResponseListReminder列出待触发提醒DELETE/api/reminders/{id}PathidQueryuserIdApiResponseString取消提醒注意 DELETE 还要传userId做归属校验——不是任何人都能取消任何人的提醒这是无鉴权体系下最朴素的权限防线。2.3 情绪与健康HTTP路径参数返回作用POST/api/emotionsBodyuserId必填、emotion必填、intensity默认 5、context、source默认 manualApiResponseEmotionRecord记录一条情绪GET/api/emotionsQueryuserIdApiResponseListEmotionRecord最近 10 条情绪POST/api/healthBodyuserId必填、type必填、value、unit、note、deviceIdApiResponseHealthRecord记录健康数据异常自动建告警工单GET/api/healthQueryuserId、typeApiResponseListHealthRecord近 7 天某类健康数据趋势2.4 设备HTTP路径参数返回作用POST/api/devices/registerQuerydeviceCode必填、name、type均可选ApiResponseDevice注册/认领设备已存在则返回原设备POST/api/devices/bindQueryuserId、deviceCodeApiResponseDevice用户绑定设备GET/api/devicesQueryuserIdApiResponseListDevice用户设备列表POST/api/devices/controlQueryuserId、deviceCode、action必填param可选ApiResponseString下发动作speak/gesture/light/wake/sleep设备这组接口全是 Query 参数而不是 JSON Body风格上和前几组不统一——能用但二次开发时建议统一成 Body 传参DTO 校验才用得上。2.5 视觉与告警HTTP路径参数返回作用POST/api/vision/detectmultipartfile图片、task默认 face可选 face/pose/fallApiResponseListDetection通用目标/姿态/跌倒检测POST/api/vision/fallmultipartfile图片ApiResponseBoolean是否检测到跌倒置信度阈值 0.6GET/api/alertsQueryuserId可选、status可选ApiResponseListAlert传 userId 按用户查默认 open不传查全部待处理PUT/api/alerts/{id}/statusPathidQuerystatusApiResponseAlert工单状态流转 open→processing/closed视觉接口内部会把图片转发给独立的 Python 视觉服务默认地址http://127.0.0.1:8000读取失败统一包装为BusinessException(图片读取失败…)。2.6 HomeController根路径的两张名片HTTP路径返回作用GET/ApiResponseMap服务元信息service/desc/docsGET/api/pingApiResponseString健康检查返回pong为什么HomeController放在根路径而不是塞进/api下因为它的服务对象不是业务前端而是人和运维工具浏览器地址栏敲个根路径就能看到这是什么服务部署脚本、探活检查用curl http://localhost:8080/api/ping验证服务是否活着。它游离于业务前缀之外是对外名片不是业务资源。这和 Spring Boot Actuator 的/actuator/health本项目也开了形成双保险ping 验应用进程actuator 验运行时状态。三、和标准 RESTful 的距离严格 RESTful 有一套名词资源 动词靠 HTTP 方法的教条。对照下来AI 伙伴是资源域 实用主义的混合体接口RESTful 教条写法实际写法点评注册设备POST /api/devicesPOST /api/devices/register动作后缀风格偏离但不影响理解绑定设备PUT /api/devices/{code}/ownerPOST /api/devices/bind同上更新工单状态PATCH /api/alerts/{id}PUT /api/alerts/{id}/status用子资源表达状态变更常见折中对话POST /api/conversationsPOST /api/chat动作语义优先聊天场景业界通行我的看法RESTful 是手段不是信仰。这个项目的接口在可预测、好调试、和前端沟通成本低这三件事上达标了个别不纯的地方register/bind 的动词后缀属于务实取舍。二次开发时保持两个底线即可前缀按资源域划、同域内风格统一。四、接口版本化的缺失与改进所有接口都直接挂在/api/**下没有/api/v1。当前单人开发问题不大但一旦外部小程序、H5 开始依赖你的接口改个字段就是线上事故。改进方案很轻路径版本/api/v1/users——最直观Nginx 路由也好配推荐Header 版本X-Api-Version: 1——路径干净但调试麻烦。落地成本几乎为零给 Controller 的RequestMapping统一加上 v1 前缀即可新版本来了再开/api/v2老版本并行一段时间后下线。五、完整的接口地图最后把 19 个接口拼成一张速查地图二次开发时对着查http://localhost:8080 ├─ GET / 服务元信息 ├─ GET /api/ping 健康检查 ├─ POST /api/users 查找或创建用户 ├─ POST /api/chat 陪伴对话 ├─ POST /api/reminders 创建提醒 ├─ GET /api/reminders 待触发提醒列表 ├─ DEL /api/reminders/{id} 取消提醒 ├─ POST /api/emotions 记录情绪 ├─ GET /api/emotions 最近10条情绪 ├─ POST /api/health 记录健康数据 ├─ GET /api/health 近7天健康趋势 ├─ POST /api/devices/register 注册设备 ├─ POST /api/devices/bind 绑定设备 ├─ GET /api/devices 用户设备列表 ├─ POST /api/devices/control 下发设备动作 ├─ POST /api/vision/detect 图片检测face/pose/fall ├─ POST /api/vision/fall 跌倒检测 ├─ GET /api/alerts 告警工单列表 └─ PUT /api/alerts/{id}/status 更新工单状态六、合规与安全提醒这份接口地图同时暴露了它的软肋没有任何鉴权未发现登录拦截器userId全靠客户端自报。对接任何真实用户前请至少做到三件事加一层认证JWT 或平台登录态校验把谁在调用变成服务端可信信息接口限频防止/api/chat被刷爆大模型账单健康与情绪接口必须做数据归属校验和授权管控——老人孩子的心率、情绪不该是任何拿到 userId 的人都能查的公开数据。小结9 个控制器、19 个接口按资源域划分前缀实用主义路线配上根路径的两张运维名片整体是一套教科书级的中小型项目接口组织。短板也很诚实没版本化、没鉴权——这正好是二次开发者练手的两个最佳切入点。下一篇我们看这些接口统一返回的ApiResponse三段式和全局异常处理。

相关新闻

SSM毕设项目:基于 SSM 的视频课程资源管理系统的设计与实现 基于 SSM 的在线学习资源推送系统 (源码+文档,讲解、调试运行,定制等)

SSM毕设项目:基于 SSM 的视频课程资源管理系统的设计与实现 基于 SSM 的在线学习资源推送系统 (源码+文档,讲解、调试运行,定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/24 4:03:53 阅读更多 →
GitHub趋势榜解读:从打不开到跑起来的全能实战指南

GitHub趋势榜解读:从打不开到跑起来的全能实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 4:03:53 阅读更多 →
LDO稳定性设计:STB仿真原理与相位裕度实战解析

LDO稳定性设计:STB仿真原理与相位裕度实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 4:03:53 阅读更多 →

最新新闻

CodeBurn 发布验收 Agent 执行手册:从候选 SHA 到 release-ready 的可复现审计契约

CodeBurn 发布验收 Agent 执行手册:从候选 SHA 到 release-ready 的可复现审计契约

【免费下载链接】codeburn Free, local tool to track AI coding token usage and cost across 37 tools and agents (Claude Code, Cursor, Codex, Gemini and more), by model, project, and task. npx codeburn 项目地址: https://gitcode.com/gh_mirrors/co/cod…

2026/9/24 4:49:27 阅读更多 →
@formily/reactive-vue observer:将 Vue 组件渲染变为 Reaction 响应式追踪的完整指南

@formily/reactive-vue observer:将 Vue 组件渲染变为 Reaction 响应式追踪的完整指南

前端UI组件 【免费下载链接】formily 📱🚀 🧩 Cross Device & High Performance Normal Form/Dynamic(JSON Schema) Form/Form Builder -- Support React/React Native/Vue 2/Vue 3 项目地址: https://gitcode.com/gh_mirrors…

2026/9/24 4:49:27 阅读更多 →
Kornia 修复深度解析:HyNet 与 SOSNet 半精度描述符的 CPU/GPU 稳定性改造

Kornia 修复深度解析:HyNet 与 SOSNet 半精度描述符的 CPU/GPU 稳定性改造

计算机视觉人工智能深度学习图像处理 【免费下载链接】kornia 🐍 Geometric Computer Vision Library for Spatial AI 项目地址: https://gitcode.com/gh_mirrors/ko/kornia 点击查看 免费下载 本文基于 Kornia 仓库 changelog.d/migration-085.fixed.m…

2026/9/24 4:49:27 阅读更多 →
华为S5700 VLAN配置与排障实战指南

华为S5700 VLAN配置与排障实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 4:49:27 阅读更多 →
变转速变载荷下轴承退化指标构建:RBFNN-KPCA方法实战

变转速变载荷下轴承退化指标构建:RBFNN-KPCA方法实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 4:49:27 阅读更多 →
SSM毕业设计-基于 SSM+Vue 的医疗机构体检管控系统的设计与实现 基于 SSM 的一体化健康体检管理系统的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)

SSM毕业设计-基于 SSM+Vue 的医疗机构体检管控系统的设计与实现 基于 SSM 的一体化健康体检管理系统的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/24 4:48:27 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →