LingAdmin/Backend/LingAdmin.API/TESTING.md

203 lines
4.8 KiB
Markdown
Raw Permalink Normal View History

2026-04-16 18:13:06 +08:00
# 测试指南
## API 已成功启动! 🎉
应用运行在:
- **API 地址**: http://localhost:5000
- **Dapr Sidecar**: http://localhost:3500
- **Swagger UI**: http://localhost:5000/swagger
## 测试方式
### 1. 使用 Swagger UI (推荐,最简单)
在浏览器中打开: **http://localhost:5000/swagger**
Swagger UI 提供了可视化的 API 测试界面,您可以:
- 查看所有 API 端点
- 直接在浏览器中测试每个 API
- 查看请求和响应格式
### 2. 使用 PowerShell / curl 测试
#### 获取用户列表
```powershell
Invoke-RestMethod -Uri "http://localhost:5000/api/users" -Method Get | ConvertTo-Json -Depth 5
```
#### 获取单个用户
```powershell
Invoke-RestMethod -Uri "http://localhost:5000/api/users/1" -Method Get | ConvertTo-Json -Depth 5
```
#### 获取请购单列表
```powershell
Invoke-RestMethod -Uri "http://localhost:5000/api/requisitions" -Method Get | ConvertTo-Json -Depth 5
```
#### 获取单个请购单
```powershell
Invoke-RestMethod -Uri "http://localhost:5000/api/requisitions/101" -Method Get | ConvertTo-Json -Depth 5
```
#### 获取菜单列表
```powershell
Invoke-RestMethod -Uri "http://localhost:5000/api/menus" -Method Get | ConvertTo-Json -Depth 5
```
#### 获取国际化语言清单
```powershell
Invoke-RestMethod -Uri "http://localhost:5000/api/i18n/manifest" -Method Get | ConvertTo-Json -Depth 5
```
#### 获取英文翻译
```powershell
Invoke-RestMethod -Uri "http://localhost:5000/api/i18n/lang/en-US" -Method Get | ConvertTo-Json -Depth 5
```
#### 获取中文翻译
```powershell
Invoke-RestMethod -Uri "http://localhost:5000/api/i18n/lang/zh-CN" -Method Get | ConvertTo-Json -Depth 5
```
#### 创建新请购单
```powershell
$body = @{
requester = "测试用户"
department = "IT部门"
date = "2026-01-28"
status = "Draft"
description = "测试请购单"
items = @(
@{
itemName = "测试物品1"
quantity = 2
price = 100.50
},
@{
itemName = "测试物品2"
quantity = 5
price = 50.00
}
)
} | ConvertTo-Json -Depth 5
Invoke-RestMethod -Uri "http://localhost:5000/api/requisitions" `
-Method Post `
-Body $body `
-ContentType "application/json" | ConvertTo-Json -Depth 5
```
#### 创建新用户
```powershell
$newUser = @{
name = "测试用户"
email = "test@example.com"
role = "User"
status = "Active"
} | ConvertTo-Json
Invoke-RestMethod -Uri "http://localhost:5000/api/users" `
-Method Post `
-Body $newUser `
-ContentType "application/json" | ConvertTo-Json -Depth 5
```
### 3. 通过 Dapr Sidecar 访问 (使用 Dapr 服务调用)
```powershell
# 通过 Dapr 调用 API
Invoke-RestMethod -Uri "http://localhost:3500/v1.0/invoke/lingadmin-api/method/api/users" -Method Get | ConvertTo-Json -Depth 5
```
### 4. 测试 Dapr 状态管理
```powershell
# 保存状态
$state = @{
key = "test-key"
value = "test-value"
}
Invoke-RestMethod -Uri "http://localhost:3500/v1.0/state/statestore" `
-Method Post `
-Body ($state | ConvertTo-Json) `
-ContentType "application/json"
# 读取状态
Invoke-RestMethod -Uri "http://localhost:3500/v1.0/state/statestore/test-key" -Method Get
```
### 5. 查看 Dapr Dashboard
在新的 PowerShell 窗口运行:
```powershell
dapr dashboard
```
然后访问: http://localhost:8080
Dashboard 可以查看:
- 应用状态
- 组件配置
- 日志和追踪
### 6. 使用 Postman 或其他 API 工具
导入以下 API 端点到 Postman:
**基础 URL**: `http://localhost:5000`
**端点列表**:
- GET `/api/users` - 获取所有用户
- GET `/api/users/{id}` - 获取单个用户
- POST `/api/users` - 创建用户
- PUT `/api/users/{id}` - 更新用户
- DELETE `/api/users/{id}` - 删除用户
- GET `/api/requisitions` - 获取所有请购单
- GET `/api/requisitions/{id}` - 获取单个请购单
- POST `/api/requisitions` - 创建请购单
- PUT `/api/requisitions/{id}` - 更新请购单
- DELETE `/api/requisitions/{id}` - 删除请购单
- GET `/api/i18n/manifest` - 获取语言清单
- GET `/api/i18n/lang/{languageCode}` - 获取翻译
- GET `/api/menus` - 获取菜单
## 响应格式
所有 API 返回统一格式:
```json
{
"code": 200,
"message": "success",
"data": { /* 实际数据 */ }
}
```
## 重启应用
```powershell
# 停止应用 (Ctrl+C)
# 重新启动
cd D:\Blank\Repos\LingAdmin\Backend\LingAdmin.API
dapr run --app-id lingadmin-api --app-port 5000 --dapr-http-port 3500 --resources-path ".\dapr\components" -- dotnet run
```
## 故障排查
### 查看日志
应用日志会显示在运行 dapr run 的终端中
### 检查数据库
使用 SQL Server Management Studio 或 Azure Data Studio 连接到:
- Server: 127.0.0.1,19433
- Database: LingAdminDB
- User: sa
- Password: Blank@0925
### 检查 Redis (Dapr 状态存储)
```powershell
docker ps | findstr redis
```