214 lines
4.7 KiB
Markdown
214 lines
4.7 KiB
Markdown
# 前后端 API 对接检查报告
|
||
|
||
**检查时间**:2026-06-19 10:45 GMT+8
|
||
**检查人**:小虾 🦐
|
||
**状态**:✅ 通过
|
||
|
||
---
|
||
|
||
## 一、检查范围
|
||
|
||
检查 Phase 7 核心视频剪辑主链路的前后端 API 对接。
|
||
|
||
---
|
||
|
||
## 二、检查结果
|
||
|
||
### ✅ 生成任务 API(Generation Tasks)
|
||
|
||
**后端路由**:`apps/api/app/api/routes/generation_tasks.py`
|
||
**前端客户端**:`apps/web/src/api/generation.ts`
|
||
|
||
| API | 后端 | 前端 | 状态 |
|
||
|-----|------|------|------|
|
||
| POST /generation/tasks | ✅ | ✅ | 匹配 |
|
||
| GET /generation/tasks/{task_id} | ✅ | ✅ | 匹配 |
|
||
| GET /generation/tasks/{task_id}/results | ✅ | ✅ | 匹配 |
|
||
|
||
**字段对齐检查**:
|
||
- `workspace_id` ✅
|
||
- `project_id` ✅
|
||
- `asset_library_id` ✅
|
||
- `strategy_id` ✅
|
||
- `voice_library_id` ✅
|
||
- `status` ✅
|
||
- `progress` ✅
|
||
- `result_count` ✅
|
||
- `error_message` ✅
|
||
|
||
---
|
||
|
||
### ✅ 生成结果 API(Generated Videos)
|
||
|
||
**后端路由**:`apps/api/app/api/routes/generated_videos.py`
|
||
**前端客户端**:`apps/web/src/api/generation.ts`
|
||
|
||
| API | 后端 | 前端 | 状态 |
|
||
|-----|------|------|------|
|
||
| GET /generated-videos | ✅ | ✅ | 匹配 |
|
||
| GET /generated-videos/{video_id} | ✅ | ✅ | 匹配 |
|
||
| GET /generated-videos/{video_id}/download-url | ✅ | ✅ | 匹配 |
|
||
|
||
**字段对齐检查**:
|
||
- `id` ✅
|
||
- `workspace_id` ✅
|
||
- `project_id` ✅
|
||
- `generation_task_id` ✅
|
||
- `name` ✅
|
||
- `file_url` ✅
|
||
- `file_size` ✅
|
||
- `duration` ✅
|
||
- `thumbnail_url` ✅(可选)
|
||
- `width` ✅
|
||
- `height` ✅
|
||
- `fps` ✅
|
||
|
||
---
|
||
|
||
### ✅ 素材库 API(Asset Libraries)
|
||
|
||
**后端路由**:`apps/api/app/api/routes/asset_libraries.py`
|
||
**前端客户端**:`apps/web/src/api/assets.ts`
|
||
|
||
| API | 后端 | 前端 | 状态 |
|
||
|-----|------|------|------|
|
||
| GET /asset-libraries | ✅ | ✅ | 匹配 |
|
||
| POST /asset-libraries | ✅ | ✅ | 匹配 |
|
||
|
||
**字段对齐检查**:
|
||
- `workspace_id` ✅
|
||
- `project_id` ✅
|
||
- `name` ✅
|
||
- `kind` ✅
|
||
|
||
**注意**:
|
||
- 后端返回 `asset_count` 和 `total_size`,前端类型定义中缺失
|
||
- **影响**:低,前端可以忽略这些字段
|
||
|
||
---
|
||
|
||
### ✅ 素材 API(Assets)
|
||
|
||
**后端路由**:`apps/api/app/api/routes/assets.py`
|
||
**前端客户端**:`apps/web/src/api/assets.ts`
|
||
|
||
| API | 后端 | 前端 | 状态 |
|
||
|-----|------|------|------|
|
||
| GET /assets | ✅ | ✅ | 匹配 |
|
||
| POST /assets | ❌ | ❌ | 未使用(通过 upload 流程)|
|
||
|
||
**字段对齐检查**:
|
||
- `id` ✅
|
||
- `workspace_id` ✅
|
||
- `project_id` ✅
|
||
- `library_id` ✅
|
||
- `name` ✅
|
||
- `storage_key` ✅
|
||
- `mime_type` ✅
|
||
- `metadata` ✅
|
||
|
||
**注意**:
|
||
- 后端返回更多字段(`file_size`, `thumbnail_url`, `duration` 等)
|
||
- 前端类型定义较简单
|
||
- **影响**:低,前端可以按需扩展类型
|
||
|
||
---
|
||
|
||
### ✅ 上传 API(Upload)
|
||
|
||
**后端路由**:`apps/api/app/api/routes/upload.py`
|
||
**前端客户端**:`apps/web/src/api/assets.ts`
|
||
|
||
| API | 后端 | 前端 | 状态 |
|
||
|-----|------|------|------|
|
||
| POST /upload | ✅ | ✅ | 匹配 |
|
||
|
||
**返回字段**:
|
||
- `storage_key` ✅
|
||
- `ingest_job_id` ✅
|
||
- `url` ✅
|
||
|
||
---
|
||
|
||
### ✅ 分类任务 API(Classification Jobs)
|
||
|
||
**后端路由**:`apps/api/app/api/routes/classification_jobs.py`
|
||
**前端客户端**:`apps/web/src/api/assets.ts`
|
||
|
||
| API | 后端 | 前端 | 状态 |
|
||
|-----|------|------|------|
|
||
| GET /classification-jobs/{job_id} | ✅ | ✅ | 匹配 |
|
||
| POST /classification-jobs | ✅ | ✅ | 匹配 |
|
||
|
||
**字段对齐检查**:
|
||
- `workspace_id` ✅
|
||
- `project_id` ✅
|
||
- `asset_id` ✅
|
||
- `status` ✅
|
||
- `classification` ✅
|
||
- `confidence` ✅
|
||
- `error_message` ✅
|
||
|
||
---
|
||
|
||
## 三、发现的问题
|
||
|
||
### 问题 1:前端类型定义不完整(低优先级)
|
||
|
||
**位置**:`apps/web/src/api/assets.ts`
|
||
|
||
**问题**:
|
||
- `AssetLibraryItem` 缺少 `asset_count` 和 `total_size`
|
||
- `AssetItem` 缺少很多字段(`file_size`, `thumbnail_url`, `duration` 等)
|
||
|
||
**影响**:
|
||
- 前端可能无法显示完整信息
|
||
- 但不阻断核心流程
|
||
|
||
**建议**:
|
||
- 在专项 D 或 E 中补充完整的类型定义
|
||
|
||
---
|
||
|
||
### 问题 2:无严重的对接问题 ✅
|
||
|
||
---
|
||
|
||
## 四、总结
|
||
|
||
### ✅ 核心结论
|
||
|
||
**前后端 API 对接基本匹配,无阻断性问题。**
|
||
|
||
### 评分
|
||
|
||
**对接质量:8.5/10**
|
||
|
||
**优势**:
|
||
- 核心路径 API 完全匹配
|
||
- 字段命名一致
|
||
- 数据结构对齐
|
||
|
||
**待改进**:
|
||
- 前端类型定义可以更完整
|
||
- 但不影响当前功能运行
|
||
|
||
---
|
||
|
||
## 五、建议
|
||
|
||
### ✅ 可以安全进入专项 D
|
||
|
||
前后端对接质量良好,没有发现会影响生成链开发的问题。
|
||
|
||
### 后续优化(非阻断)
|
||
|
||
1. 补充前端类型定义
|
||
2. 添加字段级别的文档注释
|
||
3. 考虑使用 OpenAPI 自动生成类型
|
||
|
||
---
|
||
|
||
**检查人**:小虾 🦐
|
||
**完成时间**:2026-06-19 10:50 GMT+8
|