# 前端 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 配置更新