5.5 KiB
5.5 KiB
Implementation Plan: 高级功能迁移
Overview
本任务列表实现阶段8的三个核心功能:API文档完善、集成测试覆盖和缓存预热机制。任务按照依赖关系排序,确保增量开发和验证。
Tasks
-
1. API文档完善
- 1.1 配置XML文档生成
- 修改HoneyBox.Api.csproj启用GenerateDocumentationFile
- 添加NoWarn配置忽略缺少注释的警告
- Requirements: 1.1, 1.3
- 1.2 完善控制器XML注释
- 为所有控制器类添加summary注释
- 为所有Action方法添加summary、param、returns注释
- 添加中文描述说明
- Requirements: 1.3, 1.6
- 1.3 完善DTO模型XML注释
- 为Request/Response模型添加summary注释
- 为模型属性添加中文描述
- 添加example示例值
- Requirements: 1.6
- 1.4 配置OpenAPI JWT认证
- 在Program.cs中配置OpenAPI的SecurityScheme
- 添加Bearer Token认证支持
- Requirements: 1.4
- 1.5 配置多响应状态码
- 为需要认证的接口添加401响应定义
- 为可能失败的接口添加400响应定义
- 使用ProducesResponseType特性
- Requirements: 1.5
- 1.1 配置XML文档生成
-
2. Checkpoint - API文档验证
- 启动应用访问/openapi/v1.json验证文档生成
- 访问Scalar UI验证文档展示
- 如有问题请询问用户
-
3. 集成测试基础设施
- 3.1 创建WebApplicationFactory
- 在HoneyBox.Tests项目创建HoneyBoxWebApplicationFactory类
- 配置使用内存数据库替代SQL Server
- 配置测试环境的服务注册
- Requirements: 2.5
- 3.2 创建集成测试基类
- 创建IntegrationTestBase抽象类
- 实现GetAuthTokenAsync方法生成测试Token
- 实现SeedTestDataAsync方法初始化测试数据
- Requirements: 2.5, 2.7
- 3.3 创建测试数据种子
- 创建TestDataSeeder类
- 实现用户、商品、订单等测试数据初始化
- Requirements: 2.1-2.4
- 3.1 创建WebApplicationFactory
-
4. 集成测试实现
- 4.1 实现认证模块集成测试
- 测试微信登录流程(模拟)
- 测试手机号登录流程
- 测试Token验证
- Requirements: 2.1
- 4.2 实现商品模块集成测试
- 测试商品列表查询
- 测试商品详情查询
- 测试商品收藏功能
- Requirements: 2.2
- 4.3 实现订单模块集成测试
- 测试订单创建
- 测试订单查询
- 测试订单取消
- Requirements: 2.3
- 4.4 实现抽奖模块集成测试
- 测试抽奖结果查询
- 测试中奖记录查询
- 测试道具卡抽奖
- Requirements: 2.4
- * 4.5 编写API响应格式属性测试
- Property 3: 集成测试响应格式一致性
- Validates: Requirements 2.6
- 4.1 实现认证模块集成测试
-
5. Checkpoint - 集成测试验证
- 运行所有集成测试确保通过
- 如有问题请询问用户
-
6. 缓存预热实现
- 6.1 创建缓存预热配置
- 在appsettings.json添加CacheWarmup配置节
- 创建CacheWarmupOptions配置类
- 注册配置到DI容器
- Requirements: 3.6
- 6.2 创建缓存预热服务接口
- 在HoneyBox.Core/Interfaces创建ICacheWarmupService接口
- 定义WarmupAsync、WarmupHotGoodsAsync、WarmupSystemConfigAsync方法
- Requirements: 3.1, 3.2
- 6.3 实现缓存预热服务
- 在HoneyBox.Core/Services创建CacheWarmupService类
- 实现热门商品数据预热(按销量/浏览量排序)
- 实现系统配置数据预热
- 添加预热进度日志记录
- Requirements: 3.1, 3.2, 3.4
- 6.4 创建缓存预热后台服务
- 在HoneyBox.Api创建CacheWarmupHostedService类
- 继承BackgroundService实现异步预热
- 添加错误处理确保不影响系统启动
- Requirements: 3.3, 3.5
- 6.5 注册缓存预热服务
- 在Program.cs注册ICacheWarmupService
- 注册CacheWarmupHostedService为托管服务
- Requirements: 3.1-3.6
- * 6.6 编写缓存预热属性测试
- Property 4: 缓存预热异步性
- Validates: Requirements 3.3
- 6.1 创建缓存预热配置
-
7. Checkpoint - 缓存预热验证
- 启动应用验证预热日志输出
- 验证缓存中存在预热数据
- 如有问题请询问用户
-
8. 文档更新
- 8.1 更新API迁移文档
- 在docs/API迁移详细文档/阶段8-高级功能.md标记完成状态
- 记录实现的功能和配置说明
- Requirements: 1.1-3.6
- 8.1 更新API迁移文档
-
9. Final Checkpoint - 完整功能验证
- 确保所有测试通过
- 确保API文档完整可访问
- 确保缓存预热正常工作
- 如有问题请询问用户
Notes
- Tasks marked with
*are optional and can be skipped for faster MVP - Each task references specific requirements for traceability
- Checkpoints ensure incremental validation
- Property tests validate universal correctness properties
- 集成测试使用内存数据库,不依赖外部SQL Server
- 缓存预热在后台异步执行,不阻塞应用启动
- API文档使用.NET内置的OpenAPI支持和Scalar UI
技术说明
XML注释配置
<!-- HoneyBox.Api.csproj -->
<PropertyGroup>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);1591</NoWarn>
</PropertyGroup>
缓存预热配置
// appsettings.json
{
"CacheWarmup": {
"EnableWarmup": true,
"HotGoodsCount": 100,
"WarmupDelaySeconds": 5
}
}
集成测试运行
cd server/C#/HoneyBox
dotnet test --filter "Category=Integration"