# 🚀 快速测试指南 ## ✅ 当前状态 - ✅ **后端服务**: http://localhost:8080 (运行中) - ✅ **前端服务**: http://localhost:5175 (运行中) - ✅ **API 通信**: camelCase 正常工作 - ✅ **测试通过**: 所有 API 测试通过 ## 📝 测试结果 ### 后端 API 测试 | 测试项 | 状态 | 说明 | |-------|------|------| | 健康检查 | ✅ | `/health` 返回 healthy | | 登录 API | ✅ | `accessToken` (camelCase) ✓ | | 获取集群 | ✅ | `createdAt`, `hasCaData` (camelCase) ✓ | | 创建集群 | ✅ | 请求和响应都是 camelCase ✓ | ### 前端服务 | 项目 | URL | 状态 | |-----|-----|------| | 主应用 | http://localhost:5175 | ✅ 可访问 | | API 测试页面 | http://localhost:5175/api-test | ⚠️ 需要在浏览器中访问 | ## 🧪 测试方法 ### 方法 1: 浏览器测试(推荐) 1. **打开主应用** ``` http://localhost:5175 ``` - 查看登录页面 - 测试认证功能 2. **打开 API 测试页面** ``` http://localhost:5175/api-test ``` - 点击 "🚀 完整测试" 按钮 - 观察所有 API 调用是否成功 - 验证 camelCase 字段 ### 方法 2: cURL 测试(快速验证) ```bash # 1. 健康检查 curl http://localhost:8080/health # 2. 登录(获取 Token) curl -X POST http://localhost:8080/api/v1/auth/login \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"admin123"}' # 3. 创建集群(使用 camelCase) TOKEN="你的token" curl -X POST http://localhost:8080/api/v1/clusters \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ -d '{ "name": "test-cluster", "host": "https://k8s.example.com:6443", "caData": "LS0tLS1CRUdJTi1DRVJUSUZJQ0FURS0tLS0t", "certData": "LS0tLS1CRUdJTi1DRVJUSUZJQ0FURS0tLS0t", "keyData": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVkt" }' ``` ### 方法 3: 自动化测试脚本 ```bash # 运行完整测试 cd /home/mango/workspace/ocdp-go ./scripts/test-api-camelcase.sh # 运行前端集成测试 ./scripts/test-frontend-integration.sh ``` ## 📖 前端 API 使用示例 ### 在浏览器控制台测试 打开 http://localhost:5175,按 F12 打开控制台,运行: ```javascript // 1. 导入 API 函数(如果已经在页面中加载) // 或者在组件中使用 // 2. 登录示例 const response = await fetch('http://localhost:8080/api/v1/auth/login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ username: 'admin', password: 'admin123' }) }); const data = await response.json(); console.log('登录响应 (camelCase):', data); // 应该看到: { accessToken: "...", refreshToken: "...", userId: "..." } // 3. 获取集群列表 const token = data.accessToken; const clustersResponse = await fetch('http://localhost:8080/api/v1/clusters', { headers: { 'Authorization': `Bearer ${token}` } }); const clusters = await clustersResponse.json(); console.log('集群列表 (camelCase):', clusters); // 应该看到 camelCase 字段: createdAt, hasCaData, etc. ``` ## ✨ camelCase 验证清单 验证以下字段都是 camelCase 格式: ### Auth API - [ ] `accessToken` - [ ] `refreshToken` - [ ] `userId` ### Cluster API - [ ] `caData` - [ ] `certData` - [ ] `keyData` - [ ] `hasCaData` - [ ] `hasCertData` - [ ] `hasKeyData` - [ ] `hasToken` - [ ] `createdAt` - [ ] `updatedAt` ### Registry API - [ ] `registryId` - [ ] `hasPassword` - [ ] `createdAt` - [ ] `updatedAt` ## 🎯 预期结果 ### API 响应示例(camelCase ✅) **登录响应:** ```json { "accessToken": "eyJhbGci...", "refreshToken": "eyJhbGci...", "userId": "e0b632e8-...", "username": "admin" } ``` **集群响应:** ```json { "id": "ed37e2b2-...", "name": "test-cluster", "host": "https://k8s.example.com:6443", "hasCaData": true, "hasCertData": true, "hasKeyData": true, "hasToken": false, "caData": "••••••••", "certData": "••••••••", "keyData": "••••••••", "createdAt": "2025-11-10T10:03:04Z", "updatedAt": "2025-11-10T10:03:04Z" } ``` ## 🔧 故障排查 ### 问题:前端无法连接后端 **检查:** ```bash # 检查后端是否运行 curl http://localhost:8080/health # 如果没有运行 cd backend make run-0 ``` ### 问题:前端服务未启动 **检查:** ```bash # 检查前端是否运行 curl http://localhost:5175 # 如果没有运行 cd frontend npm run dev ``` ### 问题:API 返回 401 Unauthorized **原因**: Token 过期或未设置 **解决**: 1. 重新登录获取新 Token 2. 确保 Authorization header 正确设置 ### 问题:看到 snake_case 而不是 camelCase **检查**: 1. 确认 Go DTO JSON tags 已更新 2. 确认 OpenAPI 规范已更新 3. 确认前端代码已重新生成:`npm run openapi-gen` 4. 重启后端和前端服务 ## 📚 相关文档 - **完整文档**: [IMPLEMENTATION-COMPLETE.md](./IMPLEMENTATION-COMPLETE.md) - **测试指南**: [TEST-GUIDE.md](./TEST-GUIDE.md) - **测试结果**: [TEST-RESULTS.md](./TEST-RESULTS.md) - **API 文档**: [frontend/src/api/README.md](./frontend/src/api/README.md) ## 🎊 成功标志 当你看到以下内容时,说明一切正常: ✅ 后端返回 JSON 使用 camelCase ✅ 前端可以正常解析响应 ✅ 所有 API 调用成功 ✅ TypeScript 类型提示正常 ✅ 浏览器控制台无错误 --- **当前服务地址:** - 🌐 前端: http://localhost:5175 - 🔌 后端: http://localhost:8080 - 🧪 测试: http://localhost:5175/api-test **快速测试命令:** ```bash # 一键运行所有测试 cd /home/mango/workspace/ocdp-go ./scripts/test-frontend-integration.sh ``` 🎉 **测试成功!camelCase API 完全正常工作!**