# ElectricAPI **Repository Path**: YFKael/ElectricAPI ## Basic Information - **Project Name**: ElectricAPI - **Description**: 权限管理系统 - **Primary Language**: C# - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2024-04-10 - **Last Updated**: 2025-07-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: Vue ## README # ElectricAPI ## 介绍 ElectricAPI 是一个基于 ASP.NET Core 的开源权限管理系统,提供用户权限管理、审计日志、角色管理等功能。该项目适用于需要快速搭建权限管理模块的企业级应用。 ## 软件架构 ElectricAPI 使用了以下核心技术栈: - **ASP.NET Core 7.0**:用于构建 Web API。 - **Entity Framework Core**:作为 ORM 框架进行数据库操作。 - **JWT (JSON Web Token)**:用于身份验证和授权。 - **AutoMapper**:用于对象映射。 - **Swashbuckle.AspNetCore**:用于生成 API 文档(Swagger)。 - **IdentityServer4 / ASP.NET Identity**:用于用户身份管理和角色权限控制。 - **Serilog / log4net**:用于日志记录。 - **RateLimiter**:用于限制请求频率,防止滥用。 系统模块包括: - 用户管理 - 角色管理 - 权限管理 - 审计日志 - 登录认证 - 数据库迁移工具 ## 功能特性 - 基于 JWT 的身份认证 - 用户、角色、权限的增删改查 - 审计日志记录(包括正常与异常请求) - 数据库迁移支持(EF Core Migrations) - 请求频率限制(Rate Limiting) - 异常统一处理(Exception Filter) - 支持 Swagger 接口文档 - 支持多数据库(SQL Server / MySQL) ## 安装与部署 ### 开发环境要求 - .NET 7.0 SDK - Visual Studio 2022 或 VS Code - SQL Server / MySQL 数据库 - Node.js(前端部分) ### 后端部署步骤 1. 克隆项目: ```bash git clone https://gitee.com/YFKael/ElectricAPI.git ``` 2. 修改配置文件: - 修改 `Electric.API/appsettings.json` 中的数据库连接字符串: ```json "ConnectionStrings": { "Default": "Server=your_server;Database=electric_db;User Id=sa;Password=your_password;" } ``` 3. 数据库迁移: - 使用 EF Core 迁移数据库: ```bash cd Electric.DbMigrator dotnet run ``` 4. 启动项目: ```bash cd Electric.API dotnet run ``` 5. 访问 Swagger 接口文档: ``` http://localhost:5000/swagger ``` ### 前端部署(vue-element-admin) 1. 安装依赖: ```bash cd vue-element-admin npm install ``` 2. 启动开发服务器: ```bash npm run dev ``` 3. 构建生产版本: ```bash npm run build ``` ## API 示例 ### 登录接口 ```http POST /api/auths/login Content-Type: application/json { "userName": "admin", "password": "123456" } ``` ### 获取用户列表 ```http GET /api/users Authorization: Bearer ``` ### 创建角色 ```http POST /api/roles Authorization: Bearer Content-Type: application/json { "name": "管理员", "status": 1 } ``` ## 参与贡献 欢迎提交 Issue 和 Pull Request。贡献者需遵循以下规范: - Fork 项目并创建新分支 - 提交代码前确保通过单元测试 - 保持代码简洁、可维护 - 提交 PR 时说明修改内容 ## 特技 - **自动审计日志**:所有请求自动记录日志,包括参数、执行时间、IP 地址等。 - **脱敏处理**:敏感字段(如密码)在日志和响应中自动脱敏。 - **统一响应格式**:所有 API 返回统一结构,便于前端解析。 - **模块化设计**:服务层、仓储层、实体层分离,易于扩展。 - **支持多数据库**:通过 EF Core 支持 SQL Server 和 MySQL。 ## 协议 本项目采用 MIT License,请查看 [LICENSE](LICENSE) 文件。