# 可婕后端管理系统-API **Repository Path**: starry123/kegie-admin-api ## Basic Information - **Project Name**: 可婕后端管理系统-API - **Description**: 可婕后端管理系统 是一个专注于提供高效、稳定API服务的开源项目,提供高效、灵活的API构建工具,支持快速开发和部署,适用于多种后端应用。 - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-04-18 - **Last Updated**: 2025-12-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## RuoVea.Api.Template 项目 **以 .NET WebAPI 作为服务端,适用于项目快速构建使用** **注意该项目版本为 .NET 8** ### 项目简介 RuoVea.Api.Template 是一个基于 .NET 8 开发的 WebAPI 模板项目,旨在为开发者提供一个快速构建企业级应用的基础框架。该模板集成了多种常用功能和最佳实践,包括认证授权、日志管理、ORM框架、API文档、异常处理等,可帮助开发者快速搭建可靠、高效的API服务。 ### 主要特性 - ✅ **基于 .NET 8** - 使用最新的 .NET 技术栈 - ✅ **模块化设计** - 清晰的分层架构,便于维护和扩展 - ✅ **JWT 认证** - 实现了基于 JWT 的身份认证和授权机制 - ✅ **ORM 框架** - 集成 SqlSugarCore,提供强大的数据访问能力 - ✅ **日志系统** - 基于 RuoVea.ExLog 的日志管理 - ✅ **API 文档** - 集成 Swagger,自动生成 API 文档 - ✅ **异常处理** - 统一的异常处理机制 - ✅ **CORS 支持** - 配置化的跨域资源共享 - ✅ **依赖注入** - 完整的依赖注入支持 - ✅ **Docker 支持** - 提供 Docker 容器化部署方案 - ✅ **多环境配置** - 支持开发、生产等多环境配置 ### 项目技术栈 #### 核心框架 - **.NET 8** - WebAPI 框架 #### RuoVea 组件 - **RuoVea.ExDto** - 扩展数据传输对象 - **RuoVea.ExCache** - 缓存扩展 - **RuoVea.ExIdGen** - ID 生成器 - **RuoVea.ExLog** - 日志组件 - **RuoVea.ExUtil** - 工具类库 - **RuoVea.ExFilter** - 过滤器组件 - **RuoVea.ExJwtBearer** - JWT 认证组件 - **RuoVea.ExSugar** - SqlSugar 扩展 - **RuoVea.DynamicWebApi** - 动态 WebAPI 生成 #### 第三方依赖 - **Newtonsoft.Json** - JSON 序列化 - **Swashbuckle.AspNetCore** - Swagger API 文档 - **SqlSugarCore** - ORM 框架 ### 项目结构 ``` RuoVea.Omi.Api.Template ├── Doc/ # 文档目录 │ ├── Docker/ # Docker 相关文件 │ ├── Language/ # 语言资源文件 │ └── img/ # 图片资源 ├── KeGie.Admin.Entry/ # 入口项目 │ ├── Config/ # 配置文件目录 │ ├── Controllers/ # API 控制器 │ ├── Extensions/ # 扩展方法 │ ├── Filters/ # 过滤器 │ ├── Program.cs # 程序入口 │ └── appsettings.json # 应用配置 ├── KeGie.Admin.Server/ # 业务逻辑层 │ ├── Dto/ # 数据传输对象 │ ├── Models/ # 数据模型 │ ├── SeedData/ # 种子数据 │ └── Service/ # 业务服务 ├── README.md # 项目说明文档 └── KeGie.Admin.sln # 解决方案文件 ``` ### 项目模块说明 #### 入口项目 (KeGie.Admin.Entry) - **Controllers** - API 控制器,处理 HTTP 请求 - **Config** - 各种配置文件,如数据库连接、JWT、CORS 等 - **Filters** - 请求过滤器,如日志记录、SQL 日志等 - **Extensions** - 扩展方法,如本地化扩展 - **Program.cs** - 应用启动配置,注册服务和中间件 #### 业务逻辑层 (KeGie.Admin.Server) - **Models** - 数据模型,定义数据库表结构 - **Dto** - 数据传输对象,用于 API 请求和响应 - **Service** - 业务逻辑服务,实现核心业务功能 - **SeedData** - 种子数据,用于初始化数据库 ### 快速开始 #### 环境要求 - .NET 8 SDK - MySql,SqlServer,Sqlite,Oracle,PostgreSQL,Dm,Kdbndp,Oscar,MySqlConnector,Access,OpenGauss,QuestDB,HG,ClickHouse,GBase,Odbc,OceanBaseForOracle,TDengine,GaussDB,OceanBase,Tidb,Vastbase,PolarDB ,Doris ,Xugu ,GoldenDB ,TDSQLForPGODBC ,TDSQL ,HANA ,DB2,GaussDBNative,DuckDB,MongoDb (或其他兼容数据库) #### 配置步骤 1. **克隆项目** ```bash git clone cd RuoVea.Omi.Api.Template ``` 2. **修改数据库配置** - 打开 `KeGie.Admin.Entry/Config/DbConnstring.json` - 修改数据库连接字符串 3. **安装依赖** ```bash dotnet restore ``` 4. **运行项目** ```bash dotnet run --project KeGie.Admin.Entry ``` 5. **访问 Swagger 文档** - 开发环境:http://localhost:5000/swagger #### 使用 Docker 部署 1. **构建 Docker 镜像** ```bash docker build -t ruovea-api-template . ``` 2. **运行 Docker 容器** ```bash docker run -d -p 5000:80 --name ruovea-api ruovea-api-template ``` ### 功能使用说明 #### 认证授权 - 项目使用 JWT 进行身份认证 - 配置文件:`Config/JwtConfig.json` - 获取 Token 后,在请求头中添加 `Authorization: Bearer {token}` #### 日志管理 - 集成了 RuoVea.ExLog 日志组件 - 配置文件:`Config/Exception.json` 和 `log4net.config` - 支持多种日志级别和输出方式 #### 数据库操作 - 使用 SqlSugarCore 作为 ORM 框架 - 自动创建数据库表结构 - 支持事务管理和批量操作 #### API 开发 1. **创建模型** ```csharp [SugarTable(nameof(AppDemo), "Demo")] public class AppDemo : EntityBase { [Required, MaxLength(50)] [SugarColumn(ColumnDescription = "名称")] public string Name { get; set; } // 其他属性... } ``` 2. **创建服务** ```csharp [ApiExplorerSettings(GroupName = "KeGie.Admin")] public class DemoService : IApplicationService { private readonly SugarRepository _thisRepository; public DemoService(SugarRepository thisRepository) { _thisRepository = thisRepository; } // 业务方法... } ``` 3. **服务会自动注册为 API** - GET: `/Demo/GetPagesAsync` - 获取分页数据 - POST: `/Demo/AddAsync` - 添加数据 - PUT: `/Demo/UpdateAsync` - 更新数据 - DELETE: `/Demo/DeleteAsync` - 删除数据 ### 配置文件说明 项目配置文件位于 `KeGie.Admin.Entry/Config/` 目录下: - **DbConnstring.json** - 数据库连接字符串 - **JwtConfig.json** - JWT 认证配置 - **CorsConfig.json** - 跨域配置 - **SwaggerDoc.json** - Swagger 文档配置 - **Exception.json** - 异常处理配置 - **ApISafeConfig.json** - API 安全配置 - **PasswordConfig.json** - 密码策略配置 ### 开发规范 1. **命名规范** - 类名:帕斯卡命名法(PascalCase) - 方法名:帕斯卡命名法(PascalCase) - 变量名:驼峰命名法(camelCase) - 常量名:全大写,下划线分隔 2. **代码风格** - 使用 4 个空格缩进 - 每行不超过 120 个字符 - 添加适当的注释 - 使用异步编程模式 3. **分层架构** - 严格遵循分层架构设计 - 控制器层只负责请求处理 - 业务逻辑在服务层实现 - 数据访问通过仓储层 ### 常见问题 1. **数据库连接失败** - 检查数据库连接字符串是否正确 - 确保数据库服务正在运行 - 检查数据库用户权限 2. **API 访问失败** - 检查是否已获取有效的 JWT Token - 检查请求头是否包含正确的 Authorization - 查看日志文件,定位错误原因 3. **Swagger 文档无法访问** - 确保在开发环境下运行 - 检查 Swagger 配置是否正确 ### 更新日志 #### v1.0.0 - 基于 .NET 8 创建项目模板 - 集成 JWT 认证授权 - 实现日志管理系统 - 添加 SqlSugar ORM 支持 - 配置 Swagger API 文档 - 实现统一异常处理 - 添加 Docker 支持 ### 许可证 MIT License ### 贡献 欢迎提交 Issue 和 Pull Request! --- **RuoVea.Api.Template** - 让 API 开发更简单!