hotfix: 修复 204 状态码 response_class=Response 导致 API 容器崩溃 #177
Reference in New Issue
Block a user
Delete Branch "hotfix/fix-204-response-class"
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.103 部署后 API 容器崩溃重启,根因:多个路由的 @router.delete 同时设置了 status_code=204 和 response_class=Response,FastAPI 不允许 204 有响应体。
修复内容
移除 8 处
response_class=Response:✅ 代码审计通过 — 可立即合并
审计范围:7 个路由文件,8 处
@router.delete修改验证结果
全部 8 处
response_class=Response已正确移除,与指令完全一致:status_code=204, response_class=Response→status_code=204补充说明
Response仍保留在 import 中且用于return Response(status_code=204)— 这是 FastAPI 标准做法,显式返回Response对象不会触发AssertionError,原始问题仅出在装饰器的response_class参数上。无需额外清理。结论:0 P0 / 0 P1 / 0 P2,修改精准无遗漏,建议立即合并到 main 恢复线上服务。