# API 主线清单（2026-06-19）

> 本文档列出当前 SaaS 项目所有 active API endpoints。  
> 状态：✅ ACTIVE | 🧪 EXPERIMENTAL | ⚠️ DEPRECATED

---

## 一、认证相关（Auth）

**路由前缀**: `/api/v1/auth`  
**文件**: `apps/api/app/api/routes/auth.py`

| Method | Path | 功能 | 状态 |
|--------|------|------|------|
| POST | `/register` | 用户注册 | ✅ ACTIVE |
| POST | `/login` | 用户登录 | ✅ ACTIVE |
| POST | `/logout` | 用户登出 | ✅ ACTIVE |
| GET | `/verify-email` | 邮箱验证 | ✅ ACTIVE |
| POST | `/password/forgot` | 忘记密码 | ✅ ACTIVE |
| POST | `/password/reset` | 重置密码 | ✅ ACTIVE |

**Use Cases**:
- `RegisterUserUseCase`
- `LoginUseCase`
- `LogoutUseCase`
- `VerifyEmailUseCase`
- `RequestPasswordResetUseCase`
- `ResetPasswordUseCase`

---

## 二、工作空间（Workspaces）

**路由前缀**: `/api/v1/workspaces`  
**文件**: `apps/api/app/api/routes/workspaces.py`

| Method | Path | 功能 | 状态 |
|--------|------|------|------|
| POST | `/` | 创建工作空间 | ✅ ACTIVE |
| GET | `/` | 列出用户的工作空间 | ✅ ACTIVE |
| GET | `/{workspace_id}` | 获取工作空间详情 | ✅ ACTIVE |
| POST | `/{workspace_id}/members/invite` | 邀请成员 | ✅ ACTIVE |
| GET | `/{workspace_id}/members` | 列出成员 | ✅ ACTIVE |
| DELETE | `/{workspace_id}/members/{user_id}` | 移除成员 | ✅ ACTIVE |
| POST | `/{workspace_id}/leave` | 离开工作空间 | ✅ ACTIVE |
| PATCH | `/{workspace_id}/members/{user_id}/role` | 更新成员角色 | ✅ ACTIVE |
| POST | `/{workspace_id}/subscription/upgrade` | 升级订阅 | ✅ ACTIVE |
| POST | `/{workspace_id}/subscription/cancel` | 取消订阅 | ✅ ACTIVE |
| GET | `/{workspace_id}/quota` | 查询配额 | ✅ ACTIVE |
| POST | `/invitations/{token}/accept` | 接受邀请 | ✅ ACTIVE |
| POST | `/invitations/{token}/decline` | 拒绝邀请 | ✅ ACTIVE |

**Use Cases**:
- `CreateWorkspaceUseCase`
- `ListWorkspacesUseCase`
- `InviteMemberUseCase`
- `ListMembersUseCase`
- `RemoveMemberUseCase`
- `UpdateMemberRoleUseCase`
- `SubscriptionUseCase`
- `AcceptInvitationUseCase`

---

## 三、项目管理（Projects）

**路由前缀**: `/api/v1/projects`  
**文件**: `apps/api/app/api/routes/projects.py`

| Method | Path | 功能 | 状态 |
|--------|------|------|------|
| GET | `/` | 列出项目 | ✅ ACTIVE |
| POST | `/` | 创建项目 | ✅ ACTIVE |

**Use Cases**:
- `CreateProjectUseCase`
- `ListProjectsUseCase`

---

## 四、素材管理（Assets）

### 4.1 素材库（Asset Libraries）

**路由前缀**: `/api/v1/asset-libraries`  
**文件**: `apps/api/app/api/routes/asset_libraries.py`

| Method | Path | 功能 | 状态 |
|--------|------|------|------|
| GET | `/` | 列出素材库 | ✅ ACTIVE |
| POST | `/` | 创建素材库 | ✅ ACTIVE |

**Use Cases**:
- `CreateAssetLibraryUseCase`
- `ListAssetLibrariesUseCase`

### 4.2 素材（Assets）

**路由前缀**: `/api/v1/assets`  
**文件**: `apps/api/app/api/routes/assets.py`

| Method | Path | 功能 | 状态 |
|--------|------|------|------|
| GET | `/` | 列出素材 | ✅ ACTIVE |
| POST | `/` | 创建素材 | ✅ ACTIVE |

**Use Cases**:
- `CreateAssetUseCase`
- `ListAssetsUseCase`

### 4.3 上传（Upload）

**路由前缀**: `/api/v1/upload`  
**文件**: `apps/api/app/api/routes/upload.py`

| Method | Path | 功能 | 状态 |
|--------|------|------|------|
| POST | `/` | 上传文件 | ✅ ACTIVE |

**Use Cases / Services**:
- `SubmitIngestJobUseCase`
- `OSSStorageService`（经 `get_storage_service` 注入）

---

## 五、素材处理（Asset Processing）

### 5.1 Ingest Jobs

**路由前缀**: `/api/v1/ingest-jobs`  
**文件**: `apps/api/app/api/routes/ingest_jobs.py`

| Method | Path | 功能 | 状态 |
|--------|------|------|------|
| GET | `/{job_id}` | 获取任务状态 | ✅ ACTIVE |
| POST | `/` | 创建任务 | ✅ ACTIVE |

**Use Cases**:
- `CreateIngestJobUseCase`
- `GetIngestJobUseCase`

### 5.2 Classification Jobs

**路由前缀**: `/api/v1/classification-jobs`  
**文件**: `apps/api/app/api/routes/classification_jobs.py`

| Method | Path | 功能 | 状态 |
|--------|------|------|------|
| GET | `/{job_id}` | 获取分类任务状态 | ✅ ACTIVE |
| POST | `/` | 创建分类任务 | ✅ ACTIVE |

**Use Cases**:
- `CreateClassificationJobUseCase`
- `GetClassificationJobUseCase`

---

## 六、视频生成（Video Generation）

### 6.1 生成任务（Generation Tasks）

**路由前缀**: `/api/v1/generation`  
**文件**: `apps/api/app/api/routes/generation_tasks.py`

| Method | Path | 功能 | 状态 |
|--------|------|------|------|
| POST | `/tasks` | 创建生成任务 | ✅ ACTIVE |
| GET | `/tasks/{task_id}` | 获取任务状态 | ✅ ACTIVE |
| GET | `/tasks/{task_id}/results` | 获取生成结果列表 | ✅ ACTIVE |

**Use Cases**:
- `CreateGenerationTaskUseCase`
- `GetGenerationTaskUseCase`
- `ListGenerationTaskResultsUseCase`

### 6.2 生成结果（Generated Videos）

**路由前缀**: `/api/v1/generated-videos`  
**文件**: `apps/api/app/api/routes/generated_videos.py`

| Method | Path | 功能 | 状态 |
|--------|------|------|------|
| GET | `/` | 列出生成结果 | ✅ ACTIVE |
| GET | `/{video_id}` | 获取单个结果 | ✅ ACTIVE |
| GET | `/{video_id}/download-url` | 获取下载链接 | ✅ ACTIVE |

**Use Cases**:
- `ListGeneratedVideosUseCase`
- `GetGeneratedVideoUseCase`
- `GetGeneratedVideoDownloadUrlUseCase`

---

## 七、项目管理高级功能（Project Management）

**路由前缀**: `/api/v1/project-management`  
**文件**: `apps/api/app/api/routes/project_management.py`

| Method | Path | 功能 | 状态 |
|--------|------|------|------|
| POST | `/tasks` | 创建任务 | ✅ ACTIVE |
| GET | `/tasks` | 列出任务 | ✅ ACTIVE |
| GET | `/tasks/{task_id}` | 获取任务详情 | ✅ ACTIVE |
| PATCH | `/tasks/{task_id}` | 更新任务 | ✅ ACTIVE |
| PATCH | `/tasks/{task_id}/status` | 更新任务状态 | ✅ ACTIVE |
| PATCH | `/tasks/{task_id}/progress` | 更新任务进度 | ✅ ACTIVE |
| POST | `/milestones` | 创建里程碑 | ✅ ACTIVE |
| GET | `/milestones` | 列出里程碑 | ✅ ACTIVE |
| POST | `/issues` | 创建问题 | ✅ ACTIVE |
| GET | `/issues` | 列出问题 | ✅ ACTIVE |
| PATCH | `/issues/{issue_id}/resolve` | 解决问题 | ✅ ACTIVE |

**Use Cases**:
- `CreateTaskUseCase`
- `ListTasksUseCase`
- `GetTaskUseCase`
- `UpdateTaskUseCase`
- `UpdateTaskStatusUseCase`
- `UpdateTaskProgressUseCase`
- `CreateMilestoneUseCase`
- `ListMilestonesUseCase`
- `CreateTaskIssueUseCase`
- `ListTaskIssuesUseCase`
- `ResolveTaskIssueUseCase`

---

## 八、健康检查（Health）

**路由前缀**: `/api/v1`  
**文件**: `apps/api/app/api/routes/health.py`

| Method | Path | 功能 | 状态 |
|--------|------|------|------|
| GET | `/health` | 健康检查 | ✅ ACTIVE |
| GET | `/ready` | 就绪检查 | ✅ ACTIVE |
| GET | `/startup` | 启动检查 | ✅ ACTIVE |

---

## 九、主线路径总结

### Phase 7 核心路径（视频剪辑主链）

```
上传素材
  ↓
POST /api/v1/upload

创建 Asset
  ↓
POST /api/v1/assets

发起分类
  ↓
POST /api/v1/classification-jobs

创建生成任务
  ↓
POST /api/v1/generation/tasks

查询生成结果
  ↓
GET /api/v1/generation/tasks/{task_id}/results

获取下载链接
  ↓
GET /api/v1/generated-videos/{video_id}/download-url
```

### 当前主线技术栈

- **领域层**: `packages/domain/entities.py`
- **应用层**: `packages/application/*.py`
- **持久化**: `packages/adapters/sqlalchemy_impl/*.py`
- **API**: `apps/api/app/api/routes/*.py`
- **Worker**: `apps/worker/tasks.py`

---

## 十、兼容层标注

以下文件为兼容层，保留但不再是主线：

- `packages/domain/asset.py` - `[COMPAT]` 兼容旧素材模型
- `packages/domain/asset_library.py` - `[COMPAT]` 兼容旧素材库模型
- `packages/ports/asset_repository.py` - `[COMPAT]` 兼容旧仓储接口
- `packages/ports/asset_library_repository.py` - `[COMPAT]` 兼容旧仓储接口

已删除的历史兼容层：

- `packages/adapters/postgres/*` - 旧 psycopg adapter 已删除，持久化主线统一为 `packages/adapters/sqlalchemy_impl/*`

---

**维护人**: 小虾 🦐  
**最后更新**: 2026-06-19 10:05 GMT+8
