203 lines
4.8 KiB
Markdown
203 lines
4.8 KiB
Markdown
|
|
# 测试指南
|
||
|
|
|
||
|
|
## 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
|
||
|
|
```
|