A7 归属清理方案(WIP-361 ③·报 R1 裁定)

一、事实

文件前缀端点是否注册
backend/app/routers/merchants.py(旧 U2 原型)/api/miniapp/merchantsGET ""(list_merchants)、GET /{merchant_id}(merchant_detail)否(2026-08-31 已摘除)
backend/app/routers/miniapp_merchants.py(现役新契约)/api/miniapp/merchantsGET ""、/recommended、/search、/{merchant_id}、/{merchant_id}/updates是(main.py #38)

冲突点:两文件不只同前缀,GET "" 与 GET /{id} 两条路径完全重复。FastAPI 先注册者生效 ⇒ 一旦误注册旧文件,现役商户列表/详情会被静默覆盖(无报错,极难排查)。

二、当前风险等级:低(已摘除注册)但隐患仍在

旧文件仍在 routers/ 目录下、有 router 对象、甚至带有新契约代码(含 resolve_destination),后来者极易误判为在役文件而注册。

三、已做的零风险处置

给 merchants.py 文件头加了醒目停用标注(⚠️ 禁止注册 + 原因 + 现役实现指引)。

四、待裁(三选一,请 R1 定)

方案内容优点缺点
A(推荐)移入 backend/app/routers/_deprecated/merchants.py物理隔离,杜绝误注册;内容保留可查多一个目录
B直接删除(git 历史可恢复)最干净需确认无外部引用(已确认全库无调用方)
C维持现状(仅标注)零改动隐患仍在

我的建议:A(移入 _deprecated/)。既保留 U2 原型备查价值,又不给人误注册的入口。

五、签字

排查:小齐 2026-09-16 09:5x|清理动作待 R1 裁定后执行