298 lines
8.1 KiB
Markdown
298 lines
8.1 KiB
Markdown
# 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
|