fix(ingest-jobs): GET /{job_id} 查不到时返回 404 而非 500 #1553

Merged
xiaoxia merged 2 commits from fix/ingest-jobs-404-not-found into develop 2026-08-30 12:00:08 +08:00
Owner

改动

apps/api/app/api/routes/ingest_jobs.py 的 GET /{job_id}:job 不存在时当前 raise ValueError(...) 被全局异常处理器映射成 500,客户端拿不到合理的「未找到」语义。改为 raise HTTPException(status_code=404, detail=...)

测试

新增 tests/unit/test_ingest_jobs_route_404.py

  • test_get_ingest_job_not_found_returns_404:repo.get 返 None → 404,detail 含 job_id
  • test_get_ingest_job_found_returns_200:repo.get 返 IngestJob 实体 → 200 + 字段完整

全量单测 13907 passed, 16 skipped。

## 改动 `apps/api/app/api/routes/ingest_jobs.py` 的 GET `/{job_id}`:job 不存在时当前 `raise ValueError(...)` 被全局异常处理器映射成 500,客户端拿不到合理的「未找到」语义。改为 `raise HTTPException(status_code=404, detail=...)`。 ## 测试 新增 `tests/unit/test_ingest_jobs_route_404.py`: - `test_get_ingest_job_not_found_returns_404`:repo.get 返 None → 404,detail 含 job_id - `test_get_ingest_job_found_returns_200`:repo.get 返 IngestJob 实体 → 200 + 字段完整 全量单测 13907 passed, 16 skipped。
xiaoxia added 1 commit 2026-08-30 11:27:51 +08:00
fix(ingest-jobs): GET /{job_id} 查不到时返回 404 而非 500 ValueError
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 5s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 3m45s
AI Code Review / AI Code Review (pull_request) Successful in 4m22s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 4m33s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 6m35s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 3m37s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 3m31s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 3m33s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m58s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 8m53s
CI/CD Pipeline / Validate - Code Quality (pull_request) Has been cancelled
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Build Production API Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / CI Gate (pull_request) Has been cancelled
1f9236bb16
之前 job 不存在抛 ValueError,被全局异常处理映射到 500,导致客户端拿不到合理的
'未找到'语义。改为 HTTPException(404)。

补 GET 路由单测:不存在→404、存在→200 + 字段完整。

🚀 预览环境已部署

项目 详情
PR号 #1553
预览链接 https://pr-1553.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1553 | | 预览链接 | [https://pr-1553.preview.xiaoxiajianji.com](https://pr-1553.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot added 1 commit 2026-08-30 11:38:45 +08:00
style: auto-format with black + isort + prettier [skip ci-format-check]
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 4s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 3m22s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 4m11s
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 4m45s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 4m20s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m10s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 3m33s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 4m50s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m0s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 6m44s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 7m36s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 7m36s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 6m9s
CI/CD Pipeline / CI Gate (pull_request) Successful in 48s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 3m34s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 4m33s
b69588f14d
Collaborator

【阻塞级判定】

  • 是否存在阻塞级问题:否
  • 阻塞级问题数量:0 个

📊 审查概览

  • 整体评价:通过
  • 建议级问题数量:0 个

🔴 阻塞级问题(必须修复)

💡 改进建议(不阻塞合并)

良好实践

  1. [apps/api/app/api/routes/ingest_jobs.py] 正确使用 HTTPException 替代 ValueError,符合 FastAPI 框架规范,确保资源未找到时返回标准的 HTTP 404 状态码,而非 500 内部服务器错误。
  2. [tests/unit/test_ingest_jobs_route_404.py] 新增了针对 404 场景的单元测试,有效覆盖了资源不存在的边界条件,提高了代码的健壮性和可维护性。
  3. [tests/unit/test_ingest_jobs_route_404.py] 测试代码中正确使用了 app.dependency_overrides 进行依赖注入的 Mock,这是测试 FastAPI 路由的最佳实践,确保了测试的隔离性和准确性。

🤖 由 AI 代码审查机器人自动生成 | 2026-08-30 03:43:27 | 模型:

### 【阻塞级判定】 - 是否存在阻塞级问题:否 - 阻塞级问题数量:0 个 ### 📊 审查概览 - 整体评价:通过 - 建议级问题数量:0 个 ### 🔴 阻塞级问题(必须修复) 无 ### 💡 改进建议(不阻塞合并) 无 ### ✅ 良好实践 1. **[apps/api/app/api/routes/ingest_jobs.py]** 正确使用 `HTTPException` 替代 `ValueError`,符合 FastAPI 框架规范,确保资源未找到时返回标准的 HTTP 404 状态码,而非 500 内部服务器错误。 2. **[tests/unit/test_ingest_jobs_route_404.py]** 新增了针对 404 场景的单元测试,有效覆盖了资源不存在的边界条件,提高了代码的健壮性和可维护性。 3. **[tests/unit/test_ingest_jobs_route_404.py]** 测试代码中正确使用了 `app.dependency_overrides` 进行依赖注入的 Mock,这是测试 FastAPI 路由的最佳实践,确保了测试的隔离性和准确性。 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-08-30 03:43:27 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
auto-approve-bot approved these changes 2026-08-30 11:50:36 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-08-30 11:50:38 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
xiaoxia merged commit 4f7746926c into develop 2026-08-30 12:00:08 +08:00

🗑️ 预览环境已清理

PR #1553 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #1553 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.