ocdp v1
This commit is contained in:
250
docs/archive/root-cleanup/QUICK-TEST.md
Normal file
250
docs/archive/root-cleanup/QUICK-TEST.md
Normal file
@ -0,0 +1,250 @@
|
||||
# 🚀 快速测试指南
|
||||
|
||||
## ✅ 当前状态
|
||||
|
||||
- ✅ **后端服务**: 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 完全正常工作!**
|
||||
|
||||
Reference in New Issue
Block a user