refactor(cover): 封面生成API从templates_editor解耦到generation路由 #1359
Reference in New Issue
Block a user
Delete Branch "refactor/cover-api-decouple"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
变更概述
将封面生成 API 从
templates_editor模块彻底解耦,迁移到generation路由下。后端
apps/api/app/api/routes/generation_cover.py— 新路由POST /api/v1/generation/generate-covertemplate_id改为 query parameterrouter.py— 注册新路由到/generation前缀templates_editor/__init__.py— 移除 cover_routertemplates_editor/cover.pytemplates_editor/schemas.py— 移除GenerateCoverRequest/GenerateCoverResponsetests/unit/test_generation_cover.py— 新路由单元测试前端
api/generation/cover.ts— 新 API 调用/generation/generate-coverapi/generation/index.ts— 导出generateCoveruseStep6Cover.ts— import 路径改为@/api/generationapi/template-editor/aiFeatures.ts— 移除generateCover函数api/template-editor/index.ts— 移除相关 exportapi/template-editor/types.ts— 移除GenerateCoverRequest/GenerateCoverResponse/CoverResulttest/api/edit-plans.test.ts— 移除旧 cover 测试测试
🚀 预览环境已部署
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
无
💡 改进建议(不阻塞合并)
[apps/web/src/api/generation/cover.ts: 27] 请求体参数冗余
apiClient.post时,template_id被同时放入了data(请求体)和params(查询参数)。后端接口generate_cover通过Query(...)获取template_id,且GenerateCoverRequestSchema 中并未定义该字段,因此请求体中的template_id会被忽略。建议移除请求体中的template_id: templateId,保持数据传输的一致性。[apps/api/app/api/routes/generation_cover.py: 36] Schema 类型约束不够严格
GenerateCoverRequest中的cover_type字段定义为str,仅通过文档字符串描述了可选值。建议使用Literal或Enum(例如Literal["ai_frame", "manual", "upload", "ai_regenerate"])进行约束,以便在 FastAPI 自动生成的文档中明确展示枚举值,并在校验阶段拒绝非法值,防止下游逻辑因拼写错误产生意外行为。✅ 良好实践
test_generation_cover.py不仅测试了新路由的导入和路径,还反向验证了旧模块(templates_editor)中已正确移除相关 Schema 和路由,有效防止了重构后的代码残留。✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能正常
🤖 由 AI 代码审查机器人自动生成 | 2026-08-13 10:48:04 | 模型:
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #1359 已关闭或合并,对应的预览环境已被清理。