181 lines
3.8 KiB
Markdown
181 lines
3.8 KiB
Markdown
# SimpleAdmin API
|
||
|
||
基于 Fake 框架的简单管理系统后端 API。
|
||
|
||
## 技术栈
|
||
|
||
- **.NET 8.0** - 最新的 .NET 平台
|
||
- **Fake Framework** - 模块化应用框架
|
||
- **Entity Framework Core** - ORM 框架
|
||
- **SQL Server** - 数据库
|
||
- **JWT** - 身份认证
|
||
- **Swagger** - API 文档
|
||
|
||
## 功能特性
|
||
|
||
- ✅ 模块化架构
|
||
- ✅ 自动 API 生成(ApplicationService 自动转换为 Controller)
|
||
- ✅ RBAC 权限管理
|
||
- ✅ JWT 认证
|
||
- ✅ Swagger 文档
|
||
- ✅ 依赖注入
|
||
- ✅ 工作单元
|
||
- ✅ 审计日志
|
||
|
||
## 开始使用
|
||
|
||
### 前置要求
|
||
|
||
- .NET 8.0 SDK
|
||
- SQL Server (LocalDB 或完整版)
|
||
|
||
### 配置数据库
|
||
|
||
修改 `appsettings.json` 中的连接字符串:
|
||
|
||
```json
|
||
{
|
||
"ConnectionStrings": {
|
||
"Default": "Server=(localdb)\\mssqllocaldb;Database=SimpleAdminDb;Trusted_Connection=true;MultipleActiveResultSets=true"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 数据库迁移
|
||
|
||
```bash
|
||
# 添加迁移
|
||
dotnet ef migrations add InitialCreate --project ../modules/rbac/Fake.Rbac.Infrastructure
|
||
|
||
# 更新数据库
|
||
dotnet ef database update --project ../modules/rbac/Fake.Rbac.Infrastructure
|
||
```
|
||
|
||
### 运行项目
|
||
|
||
```bash
|
||
dotnet run
|
||
```
|
||
|
||
访问 http://localhost:5000 查看 Swagger 文档。
|
||
|
||
## 默认账号
|
||
|
||
系统会自动创建默认管理员账号:
|
||
|
||
- 账号:admin
|
||
- 密码:123456
|
||
- 角色:超级管理员
|
||
|
||
**⚠️ 重要:请在生产环境中立即修改默认密码!**
|
||
|
||
## API 端点
|
||
|
||
### 认证 API
|
||
|
||
- `POST /api/auth/login` - 用户登录
|
||
- `GET /api/auth/current` - 获取当前用户信息
|
||
- `PUT /api/auth/password` - 修改密码
|
||
|
||
### 用户管理 API
|
||
|
||
- `GET /api/rbac/user/list` - 获取用户列表
|
||
- `GET /api/rbac/user/{id}` - 获取用户详情
|
||
- `POST /api/rbac/user` - 创建用户
|
||
- `PUT /api/rbac/user/{id}` - 更新用户
|
||
- `DELETE /api/rbac/user/{id}` - 删除用户
|
||
- `PUT /api/rbac/user/{id}/roles` - 分配角色
|
||
- `GET /api/rbac/user/{id}/permissions` - 获取用户权限
|
||
|
||
### 角色管理 API
|
||
|
||
- `GET /api/rbac/role/list` - 获取角色列表
|
||
- `GET /api/rbac/role/all` - 获取所有角色
|
||
- `GET /api/rbac/role/{id}` - 获取角色详情
|
||
- `POST /api/rbac/role` - 创建角色
|
||
- `PUT /api/rbac/role/{id}` - 更新角色
|
||
- `DELETE /api/rbac/role/{id}` - 删除角色
|
||
- `PUT /api/rbac/role/{id}/permissions` - 分配权限
|
||
|
||
### 菜单管理 API
|
||
|
||
- `GET /api/rbac/menu/tree` - 获取菜单树
|
||
- `GET /api/rbac/menu/user/{userId}` - 获取用户菜单
|
||
- `GET /api/rbac/menu/{id}` - 获取菜单详情
|
||
- `POST /api/rbac/menu` - 创建菜单
|
||
- `PUT /api/rbac/menu/{id}` - 更新菜单
|
||
- `DELETE /api/rbac/menu/{id}` - 删除菜单
|
||
|
||
### 权限管理 API
|
||
|
||
- `GET /api/rbac/permission/all` - 获取所有权限
|
||
- `GET /api/rbac/permission/tree` - 获取权限树
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
SimpleAdmin.Api/
|
||
├── Controllers/ # 控制器(手动创建的)
|
||
├── Program.cs # 程序入口
|
||
├── SimpleAdminApiModule.cs # 主模块配置
|
||
├── appsettings.json # 配置文件
|
||
└── README.md
|
||
```
|
||
|
||
## Fake 框架特性
|
||
|
||
### 自动 API 生成
|
||
|
||
所有继承自 `ApplicationService` 的服务会自动生成对应的 API 端点,无需手动创建 Controller。
|
||
|
||
### 模块化
|
||
|
||
通过 `[DependsOn]` 特性声明模块依赖:
|
||
|
||
```csharp
|
||
[DependsOn(
|
||
typeof(FakeAspNetCoreModule),
|
||
typeof(FakeRbacApplicationModule)
|
||
)]
|
||
public class SimpleAdminApiModule : FakeModule
|
||
{
|
||
// ...
|
||
}
|
||
```
|
||
|
||
### 依赖注入
|
||
|
||
框架自动注册服务,支持:
|
||
- `ITransientDependency` - 瞬时
|
||
- `IScopedDependency` - 作用域
|
||
- `ISingletonDependency` - 单例
|
||
|
||
### 工作单元
|
||
|
||
应用服务方法自动包装在工作单元中,支持事务管理。
|
||
|
||
## JWT 配置
|
||
|
||
JWT 配置在 `appsettings.json` 中:
|
||
|
||
```json
|
||
{
|
||
"JwtSettings": {
|
||
"SecretKey": "your-secret-key-here",
|
||
"ExpiryInMinutes": 60
|
||
}
|
||
}
|
||
```
|
||
|
||
## CORS 配置
|
||
|
||
默认允许的前端地址:
|
||
- http://localhost:3000
|
||
- http://localhost:5173
|
||
|
||
可在 `SimpleAdminApiModule.cs` 中修改。
|
||
|
||
## 许可证
|
||
|
||
MIT
|