4.7 KiB
4.7 KiB
LingAdmin Backend API
基于 .NET 8 和 Dapr 的后台管理系统后端服务。
技术栈
- .NET 8 - Web API框架
- Dapr - 分布式应用运行时
- Entity Framework Core - ORM (Code First)
- SQL Server - 数据库
- Swagger - API文档
项目结构
LingAdmin.API/
├── Controllers/ # API控制器
│ ├── UsersController.cs
│ ├── RequisitionsController.cs
│ ├── I18nController.cs
│ └── MenusController.cs
├── Models/ # 数据模型
│ ├── User.cs
│ ├── Requisition.cs
│ ├── Language.cs
│ └── MenuItem.cs
├── Data/ # 数据库上下文
│ └── AppDbContext.cs
├── DTOs/ # 数据传输对象
│ ├── ApiResponse.cs
│ └── RequisitionDto.cs
├── dapr/ # Dapr配置
│ ├── components/
│ │ ├── statestore.yaml
│ │ └── pubsub.yaml
│ └── dapr.yaml
└── Properties/
└── launchSettings.json
API端点
用户管理
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- 获取菜单列表
前置要求
- .NET 8 SDK
- Dapr CLI
- SQL Server 或 SQL Server Express
- Docker Desktop (用于运行Redis)
安装步骤
1. 安装 Dapr
# 安装 Dapr CLI
powershell -Command "iwr -useb https://raw.githubusercontent.com/dapr/cli/master/install/install.ps1 | iex"
# 初始化 Dapr
dapr init
2. 启动 Redis (用于 Dapr 状态存储和发布订阅)
docker run -d --name redis -p 6379:6379 redis:latest
3. 配置数据库连接
修改 appsettings.json 中的数据库连接字符串:
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=LingAdminDB;Trusted_Connection=True;TrustServerCertificate=True;"
}
}
4. 创建数据库迁移
cd LingAdmin.API
dotnet ef migrations add InitialCreate
dotnet ef database update
注: 如果 dotnet ef 命令不可用,请先安装:
dotnet tool install --global dotnet-ef
运行应用
方式1: 使用 Dapr CLI
cd LingAdmin.API
dapr run --app-id lingadmin-api --app-port 5000 --dapr-http-port 3500 --resources-path ./dapr/components -- dotnet run
方式2: 使用 Visual Studio
选择 "dapr" 启动配置文件并按 F5
方式3: 不使用 Dapr (仅用于测试)
cd LingAdmin.API
dotnet run
应用将在 http://localhost:5000 启动。
访问 Swagger UI
启动应用后,访问: http://localhost:5000/swagger
Dapr 功能
状态管理
使用 Redis 作为状态存储,可通过 Dapr SDK 进行访问。
发布/订阅
当创建新的请购单时,系统会发布 requisition-created 事件到 pubsub 组件。
Dapr Dashboard
dapr dashboard
访问 http://localhost:8080 查看 Dapr 仪表板。
数据库迁移
添加新迁移
dotnet ef migrations add <MigrationName>
更新数据库
dotnet ef database update
回滚迁移
dotnet ef database update <PreviousMigrationName>
开发建议
- CORS配置: 当前配置允许所有来源,生产环境请修改为特定域名
- 身份验证: 建议添加 JWT 或其他身份验证机制
- 日志: 已集成基本日志,可考虑添加 Application Insights
- 错误处理: 已实现基本错误处理,可根据需要扩展
环境变量
可以通过环境变量覆盖配置:
$env:ASPNETCORE_ENVIRONMENT="Production"
$env:ConnectionStrings__DefaultConnection="<your-connection-string>"
故障排查
数据库连接失败
检查 SQL Server 是否运行,连接字符串是否正确。
Dapr 启动失败
确保 Docker Desktop 正在运行,Redis 容器已启动。
端口冲突
修改 launchSettings.json 中的端口配置。
许可证
MIT