fix: 修复考试API路由冲突和响应验证问题
All checks were successful
continuous-integration/drone/push Build is passing

1. 调整路由顺序:将/records和/statistics放在/{exam_id}之前
2. 修复RecentExamItem.start_time允许None值
This commit is contained in:
yuliang_guo
2026-01-31 11:26:54 +08:00
parent e1d10605c9
commit 64a70d5c2c
2 changed files with 16 additions and 15 deletions

View File

@@ -260,20 +260,6 @@ async def get_mistakes(
)
@router.get("/{exam_id}", response_model=ResponseModel[ExamDetailResponse])
async def get_exam_detail(
exam_id: int,
db: AsyncSession = Depends(get_db),
current_user: User = Depends(get_current_user),
):
"""获取考试详情"""
exam_data = await ExamService.get_exam_detail(
db=db, user_id=current_user.id, exam_id=exam_id
)
return ResponseModel(code=200, data=ExamDetailResponse(**exam_data), message="获取成功")
@router.get("/records", response_model=ResponseModel[dict])
async def get_exam_records(
page: int = Query(1, ge=1),
@@ -304,6 +290,21 @@ async def get_exam_statistics(
return ResponseModel(code=200, data=stats, message="获取成功")
# 注意:动态路由 /{exam_id} 必须放在固定路由之后
@router.get("/{exam_id}", response_model=ResponseModel[ExamDetailResponse])
async def get_exam_detail(
exam_id: int,
db: AsyncSession = Depends(get_db),
current_user: User = Depends(get_current_user),
):
"""获取考试详情"""
exam_data = await ExamService.get_exam_detail(
db=db, user_id=current_user.id, exam_id=exam_id
)
return ResponseModel(code=200, data=ExamDetailResponse(**exam_data), message="获取成功")
# ==================== 试题生成接口 ====================
@router.post("/generate", response_model=ResponseModel[GenerateExamResponse])