下载工作台
SRX-V7 编程教学

场景案例一:修复接口 500

试读上半部分 · 解锁后可读全文

第 10 章 · 场景案例一:修复接口 500 报错

本章目标:完整跟练 线上/本地接口 500 从发现到修复——Ask 定位 → SRX 修 → 审阅 → 验收 → Git commit;会用 报错原文 + @ 文件 + 负面约束;失败时用 Timeline / Git / 终端跟进 补救。

学时建议:3~4 小时(含 2 小时在真实或练习项目实操)

前置srx-v7 ch01~ch09(尤其绝学 1~19);gin-web / django-web 等项目更佳。

下文以「订单列表 GET /api/orders/ 500」为例,步骤通用于 Go / Python / Node 后端。

10.1 场景背景

项目内容
现象访问 GET /api/orders/ 返回 500
日志AttributeError: 'NoneType' object has no attribute 'items'(示例)
怀疑handlers/order.goapps/order/views.py 第 47 行附近
约束不改数据库 schema、不新增依赖
您的角色后端开发,用小紫 SRX 修 bug 并走审阅

为什么选 500 作第一案例:最常见、日志信息足、适合练 Ask 不改盘 + SRX 小范围改ch09 场景 A)。


10.2 学完你能

能力验收
复现本地/测试环境确认 500
Ask只分析不改盘,得到文件清单
SRX四要素 + @ + 约束发修复任务
控场改偏文件时 Ctrl+Enter 打断
审阅三看一拒,只接受 order 相关
验收curl/测试通过 + commit

10.3 开工准备(约 15 分钟)

步骤 1 — 打开项目

  • 项目 → 打开项目 → 仓库根目录绝学 2

步骤 2 — 行为偏好(推荐)

  • Ctrl+,SRX-V7引擎 设置打开行为偏好
  • 示例:「改 handler 同步改 test;不要改 migrations」

步骤 3 — Git 分支

git status                    # 期望 clean 或先 commit
git checkout -b fix/order-list-500

步骤 4 — 复现并收集证据

  • 启动 API(按你项目:go runpython manage.py runserver 等)
  • 请求接口,确认 500
  • 复制 3~5 行关键报错(含文件、行号、异常类型)

你应该看到:浏览器/ curl 状态码 500;终端或日志有 stack trace。


10.4 第一轮:Ask 定位(不改盘)

设置:AI 下拉 → Askch02

输入(复制改)

订单列表接口 GET /api/orders/ 返回 500。
报错信息如下:
(粘贴您的完整报错,含文件路径与行号)

请分析可能原因,并列出应重点查看的文件与函数。
不要改任何代码,只分析。

你应该看到

  • 文字分析(None 从哪来、可能缺判空等)
  • 无审阅条、磁盘无变化

您要做

  • 对照左侧文件树,路径是否与 Ask 一致
  • 不一致则在下一轮 @ 钉正确文件
  • 可选:Ask 追问「最小改动方案是什么?」

10.5 第二轮:SRX 修复(带审阅)

设置:工作模式 + AI 下拉 → SRX-V7引擎新任务绝学 7 可单独一张卡)

输入(复制改路径)

【目标】修复 GET /api/orders/ 返回 500
【范围】仅改 @handlers/order.go(若 Ask 指出还需 serializers/views,再加 @)
【现象】AttributeError: 'NoneType' object has no attribute 'items',约第 47 行
【约束】不修改 migrations、settings、.env;不新增第三方依赖
【验收】接口返回 200 或合理 4xx,不再 500;相关单测通过(若有)

执行中注意

情况操作
settings 或无关目录Ctrl+Enter:「停,范围仅限 order 模块」
出现 实施计划扫步骤 → 不对 稍后 重写(ch04
影响面清单记下 tests、serializers(ch05
结构化修复清单等结束再审逻辑(ch06

以下内容需解锁后阅读

试读已结束。解锁本章 ¥5.00,或开通年度会员畅读全部教程。
年度会员 ¥199.00/年; 小紫 AI 工作台有效会员 ¥99.00/年

正文仅在服务端鉴权后下发,未付费无法获取下半部分内容。