# 前端 API 路径对齐修复总结
## 修复日期
2026-03-13
## 问题背景
后端所有 Controller 统一使用 `/api/v1/` 前缀:
- 超管端:`/api/v1/admin/*`
- 学校端:`/api/v1/school/*`
- 教师端:`/api/v1/teacher/*`
- 家长端:`/api/v1/parent/*`
- 认证:`/api/v1/auth/*`
- 文件:`/api/v1/files/*`
但前端适配层的 API 路径缺少 `/v1` 前缀,导致请求失败。
## 修复的文件
### 1. 适配层文件(手动修复)
| 文件 | 修复内容 |
|------|----------|
| `src/api/auth.ts` | `/auth/xxx` → `/v1/auth/xxx` |
| `src/api/school.ts` | `/school/xxx` → `/v1/school/xxx` |
| `src/api/teacher.ts` | 使用生成的 API,无需手动修复 |
| `src/api/parent.ts` | `/parent/xxx` → `/v1/parent/xxx` |
| `src/api/growth.ts` | `/school/xxx` → `/v1/school/xxx`
`/teacher/xxx` → `/v1/teacher/xxx` |
| `src/api/task.ts` | `/school/xxx` → `/v1/school/xxx`
`/teacher/xxx` → `/v1/teacher/xxx` |
| `src/api/resource.ts` | `/admin/xxx` → `/v1/admin/xxx` |
| `src/api/package.ts` | `/school/xxx` → `/v1/school/xxx` |
| `src/api/file.ts` | 已正确使用 `/api/v1/files` ✅ |
### 2. 生成的 API 文件(自动修复)
| 文件 | 修复方式 |
|------|----------|
| `src/api/generated/index.ts` | 使用 sed 批量替换:
`/api/xxx` → `/api/v1/xxx` |
### 3. Orval 配置(预防未来问题)
| 文件 | 修复内容 |
|------|----------|
| `orval.config.ts` | 添加 transformer 配置,在生成时自动修复路径 |
## 验证方法
### 1. 启动服务
```bash
# 启动后端
cd reading-platform-java
mvn spring-boot:run
# 启动前端(新终端)
cd reading-platform-frontend
npm run dev
```
### 2. 测试 API 调用
使用浏览器开发者工具检查 API 请求路径:
- 登录功能(`/v1/auth/login`)
- 学校端接口(`/v1/school/xxx`)
- 教师端接口(`/v1/teacher/xxx`)
- 家长端接口(`/v1/parent/xxx`)
- 超管端接口(`/v1/admin/xxx`)
### 3. 运行 E2E 测试
```bash
npm run test:e2e
```
## 注意事项
1. **生成的 API 文件**: `src/api/generated/index.ts` 是 Orval 自动生成的,不应手动修改
2. **重新生成**: 当需要重新生成 API 时,确保后端服务正在运行,然后执行:
```bash
npm run api:update
```
3. **orval 配置**: `orval.config.ts` 中已添加 transformer,下次生成时会自动修复路径
## 修复完成检查清单
- [x] auth.ts API 路径修复
- [x] school.ts API 路径修复
- [x] parent.ts API 路径修复
- [x] growth.ts API 路径修复
- [x] task.ts API 路径修复
- [x] resource.ts API 路径修复
- [x] package.ts API 路径修复
- [x] generated/index.ts 路径修复
- [x] orval.config.ts 配置更新