项目简介
这是一个基于ASP.NET Core框架的待办事项管理系统,采用Clean Architecture设计模式。旨在提供可扩展、易维护的Web API解决方案,适用于中小型项目,支持用户注册、登录、待办事项的创建、更新、删除及分页查询等功能。
项目的主要特性和功能
- 用户认证与授权:支持用户注册与登录,采用JWT认证;具备基于角色的访问控制,保障特定操作仅授权用户可执行。
- 待办事项管理:能创建、更新、删除待办事项;可分页查询待办事项列表;支持将待办事项导出为CSV文件。
- 数据验证:运用FluentValidation进行数据验证,确保输入数据合法。
- 事件处理:支持领域事件,可触发与处理待办事项创建、完成等事件。
- 性能监控:通过性能行为类监控请求执行时间,记录长运行请求。
- 日志记录:记录请求信息和异常日志,便于调试与监控。
安装使用步骤
1. 环境准备
- 安装 .NET 6 SDK。
- 安装 Docker(可选,用于数据库和集成测试)。
2. 复制项目
bash
cd CleanArchitecture
3. 安装项目模板
在解决方案的根目录下运行以下命令,安装项目模板:
powershell
dotnet new --install .\
4. 创建项目
为解决方案创建一个文件夹,并进入该文件夹:
bash
mkdir MyTodoApp
cd MyTodoApp
运行以下命令创建基于模板的项目:
powershell
dotnet new kit-ca-sln
5. 运行项目
使用内存数据库
在解决方案根目录中运行以下命令:
powershell
dotnet run --project .\src\WebAPI\
默认使用InMemoryDatabase内存数据库。在Development环境下,会生成基于Swagger - UI的API文档,访问 https://localhost:7279/swagger/index.html
查看该文档。
使用Docker Compose
根据自身需求,调整 src/WebAPI
目录中 Dockerfile
和 .dockerignore
的各项配置,以及解决方案根目录中 docker-compose.yml
中的各项配置。在解决方案根目录中运行以下命令:
powershell
docker compose up
使用实例数据库
首先需要有一个Postgres数据库实例,没有也没关系,可以用Docker方便地创建:
powershell
docker run --name postgres_default -e POSTGRES_USER=kitlau -e POSTGRES_PASSWORD=password -p 5432:5432 -d postgres:latest
修改 src/WebAPI/appsettings.json
的配置:
json
"UseInMemoryDatabase": false,
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Port=5432;Username=kitlau;Password=password;Database=CleanArchitecture"
}
在解决方案根目录中运行以下命令:
powershell
dotnet run --project .\src\WebAPI\
6. 测试
项目包含单元测试、集成测试和验收测试,可以使用以下命令运行测试:
bash
dotnet test
7. 访问API文档
在开发环境下,访问 https://localhost:7279/swagger/index.html
查看API文档。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】