fix: 修复标题库新建/编辑功能 — 前后端字段名不匹配导致422 #90
Reference in New Issue
Block a user
Delete Branch "fix/p0-create-titles-assets"
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?
问题
v0.1.73 浏览器测试发现 P0:「新建标题」点击确定无反应,modal 不关闭,数据不保存。
根因
前端
api/titles.ts发送{ content, category }但后端CreateTitleLibraryRequest期望{ name (必填), text (必填), category }。字段名不匹配导致 Pydantic 校验失败返回 422。修复
api/titles.ts: 请求时将content映射为后端的text+ 自动截取nameapi/titles.ts: 响应时将后端text字段映射回前端contentapi/titles.ts:updateTitle改用 PUT(后端实际 HTTP 方法)TitleLibrary.tsx)无需改动,映射在 API 层透明处理注意
「新建素材库」P0 问题是后端 schema 问题(
CreateAssetLibraryRequest仍要求project_id,但扁平化架构已无项目概念),需 @后端编程 修复后端 schema。详见调查结论。Closes #90
根因:前端发送 { content, category } 但后端 CreateTitleLibraryRequest 期望 { name (必填), text (必填), category }。字段名不匹配导致 Pydantic 校验失败返回 422,modal 不关闭,数据不保存。 修复: - api/titles.ts: 请求时将 content 映射为 text + 自动截取 name - api/titles.ts: 响应时将后端 text 字段映射回前端 content - api/titles.ts: updateTitle 改用 PUT(后端实际方法) - 页面代码无需改动,映射在 API 层透明处理 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>