Skip to content

场景三:晨悦·生活小程序 · 后端与数据库 ​

用 AI Coding 把生活小程序前端的 Mock 换成真 API:契约 → 表 → 可跑接口 → 最小部署。切片可换,契约纪律不变。

AI CODING · 场景三 · 后端闭环

前端字段名是合同。先冻 REST 示例,再生成路由与表;用 curl 说话,不接受「接口写好了」。

时间 1~2 天切片接口 3 个只读起库 SQLite 可起步
本场景怎么走 →
本节要点
  • 与「今天吃什么」前端对齐的三只读合同 + 字段对照表
  • 冻契约 → 内存 API → 表/seed → 部署的节奏
  • (加分)前端改接真 API 的给 AI 的 Prompt

这个场景解决什么 ​

场景二用 Mock 演示「今天吃什么」主路径。本场景让同一字段从数据库经 API 回到前端(或至少用 curl 验通)。

产品 In/Out 与样本 S1~S3(教学可裁到只读列表)见 晨悦生活 · 正式 PRD 短版;本页只冻接口合同,不扩 CPS / 转盘。

备选做法
「接口写好了」口头交差;字段悄悄改名;seed 靠 truncate;SQL 堆在路由里。
推荐做法
curl 对齐合同:字段可对照 Mock;seed 幂等;映射在 service。

选型说明: 场景三验收语言是 curl 输出,不是感觉。前后端同义词一漂,联调会空转整晚;幂等 seed 和薄路由,是为了让 AI 改一处时你还看得清。

跟做顺序 ​

  1. API 设计 × AI — 冻合同 → 内存实现 → curl
  2. 数据库表设计 × AI — 表 + 幂等 seed → API 改读库
  3. 部署上线 — Compose / 既有脚本 + 健康检查

协作节奏:

text
冻契约(本页)→ 内存 API → curl
→ 表与 seed → 再 curl
→ (加分)前端改请求层接真 API
→ Compose / 部署

场景二主路径没点通,先别进这里。

与前端对齐的合同(示例) ​

给人扫读可以看字段对照表;给 AI 实现 / curl 验收时,贴下面这段合同原文。

给 AI · REST 合同实现 Prompt与 curl 验收共用这一份;字段名不要另起同义词
text
GET /api/meal-scenes
→ [{ "id": "solo", "label": "一人食" }, ...]

GET /api/dishes?scene=solo
→ [{ "id": "dish-tomato-egg", "title": "...", "summary": "...", "sceneId": "solo" }, ...]

GET /api/dishes/dish-tomato-egg
→ {
    "id": "dish-tomato-egg",
    "title": "...",
    "summary": "...",
    "body": "...",
    "reason": "...",
    "tip": "...",
    "sceneId": "solo"
  }

错误体:{ "error": { "code": "not_found", "message": "dish not found" } }
状态码:成功 200;未知 id → 404;非法 scene → 422 或 400(二选一,写死后别变)

字段对照表(必贴写进给 AI 的 Prompt) ​

前端 MockAPI JSON库列(示例)
MealSceneId / mealScenes[].ididmeal_scenes.id
mealScenes[].namelabelmeal_scenes.label
sceneIds: MealSceneId[](筛选用)列表项 sceneId(单值)dishes.scene_id
reason / tip同名同名列
(详情加长文)bodybody

前端用数组过滤、后端存单 scene_id 完全可以,但转换必须写在 service 一层,禁止两边各猜一套同义词(rationale / hint 等)。

分层约定(写进给 AI 的 Prompt) ​

text
api 路由(薄) → service(业务 + 字段映射) → repository/model(表)
禁止:路由文件里堆 SQL

前后端联调(加分) ​

curl 全绿后再做。一次只改前端请求边界,不重写页面。

给 AI · Prompt · 前端改接真 API
text
【目标】首页列表与详情改为请求上述三个 GET;失败时展示可读错误。

【允许】请求封装 / data 适配层 / 少量页面接线
【禁止】改组件契约、改 domain 纯函数签名、改后端

【映射】列表响应 sceneId → 若页面仍要 sceneIds 过滤,在适配层组装
【验收】
- 断后端时有错误态
- 后端恢复后主路径四步仍通
- 非法 id 仍有空态

【请你】先指出将改的文件与适配函数名,确认后再改。

完成标准 ​

  • [ ] 本地能起后端;健康检查或 OpenAPI 可开
  • [ ] 三只读接口 curl 通,字段与合同一致
  • [ ] 建表/迁移可重复执行;seed 可重复
  • [ ] README 有启动与验收命令
  • [ ] (加分)前端改接真 API 后主路径仍通

建议日程(两晚) ​

晚 1:冻契约 → 内存 API → curl 全绿。
晚 2:表 + seed → API 接库 →(可选)前端联调 → Compose 最小部署。

每晚只合并「验收过的 diff」,不要周末开一个万能对话通关。

先打开:API 设计 × AI。

晨悦 AI 实践手册