✅ 健康检查功能: - 实现完整的健康检查接口(/api/health, /api/health/detailed) - 支持MySQL和Redis依赖状态检查 - 包含系统信息、性能指标监控 - 修复this上下文问题,确保服务方法正常调用 - 添加全面的健康检查测试用例 📝 Swagger文档优化: - 创建全局响应Schema定义和错误码说明 - 完善API文档,包含详细的错误码表格 - 添加JWT认证说明和响应格式示例 - 增加全局组件、响应模板和示例 - 创建Swagger文档功能测试 🎯 任务完成: - ✅ 5.0 健康检查接口 - 实现系统和依赖健康状态监控 - ✅ 7.0 Swagger文档完善 - 增加全局响应示例和错误码说明 📁 新增文件: - src/controllers/health.controller.ts - 健康检查控制器 - src/services/health.service.ts - 健康检查服务层 - src/type/health.type.ts - 健康检查类型定义 - src/validators/health.response.ts - 健康检查响应验证 - src/validators/global.response.ts - 全局响应Schema定义 - src/tests/health.test.ts - 健康检查功能测试 - src/tests/redis.test.ts - Redis连接测试 - src/tests/swagger.test.ts - Swagger文档功能测试
54 lines
3.3 KiB
Markdown
54 lines
3.3 KiB
Markdown
## 相关文件 (Relevant Files)
|
||
|
||
- `src/config/logger.config.ts` - Winston日志器配置文件,支持分环境、颜色配置。
|
||
- `src/utils/logger.ts` - 基于winston的高性能日志记录器,支持分环境输出、按日期轮转、彩色美化。
|
||
- `src/middlewares/logger.ts` - 请求日志中间件,支持请求链路追踪、彩色输出、性能监控。
|
||
- `src/demo/logger-demo.ts` - Winston日志器演示脚本,展示各种日志功能。
|
||
- `src/middlewares/error-handler.ts` - 全局错误处理中间件,支持分环境详细度、自动错误日志记录、请求追踪。
|
||
- `src/utils/response.ts` - 统一响应封装工具函数。
|
||
- `src/config/redis.config.ts` - Redis 配置与连接池,支持环境变量和默认值配置。
|
||
- `src/utils/redis.ts` - Redis连接工具,提供连接池、健康检查、状态监控等功能。
|
||
- `src/middlewares/request-id.ts` - 请求id生成与注入中间件。
|
||
- `src/controllers/health.controller.ts` - 健康检查接口。
|
||
- `src/tests/logger.test.ts` - 日志中间件单元测试。
|
||
- `src/tests/error-handler.test.ts` - 错误处理中间件全面单元测试,覆盖各种错误类型、环境差异、日志记录。
|
||
- `src/tests/response.test.ts` - 响应封装工具测试。
|
||
- `src/tests/redis.test.ts` - Redis 连接与健康检查全面单元测试,覆盖连接管理、健康检查、基础功能。
|
||
- `src/type/error.type.ts` - 自定义业务异常类型定义,包含BusinessError类和常用异常工厂。
|
||
- `docs/http-status-codes.md` - HTTP状态码完整指南,包含所有常见状态码、错误处理最佳实践。
|
||
|
||
### 备注 (Notes)
|
||
|
||
- 单元测试建议与业务代码分离,统一放在 `src/tests/` 目录。
|
||
- 日志文件存放在 `logs/` 目录,按日期轮转,格式:`application-YYYY-MM-DD.log`、`error-YYYY-MM-DD.log`。
|
||
- 生产环境按日期分文件存储,错误日志单独文件,winston-daily-rotate-file自动处理文件轮转和清理。
|
||
- 开发环境彩色控制台输出,测试环境仅输出 ERROR 级别日志。
|
||
- 已完成winston日志系统,支持请求追踪、彩色输出、分环境配置。
|
||
|
||
## 任务 (Tasks)
|
||
|
||
- [x] 1.0 设计与实现日志记录器
|
||
- [x] 1.1 选型并集成日志库(winston + winston-daily-rotate-file)
|
||
- [x] 1.2 实现分环境日志输出(dev 彩色控制台,prod 文件存储)
|
||
- [x] 1.3 日志内容包含请求id、method、url、状态码、耗时、IP
|
||
- [x] 1.4 日志文件按天分割,支持定时清理
|
||
- [x] 1.5 日志中间件单元测试
|
||
- [x] 2.0 设计与实现全局错误处理器
|
||
- [x] 2.1 支持自定义业务异常类型
|
||
- [x] 2.2 dev 环境输出详细堆栈,prod 环境输出友好信息
|
||
- [x] 2.3 错误日志自动记录
|
||
- [x] 2.4 错误处理中间件单元测试
|
||
- [x] 3.0 设计与实现统一响应封装
|
||
- [x] 3.1 封装统一响应结构(code/message/data/traceId/耗时)
|
||
- [x] 3.2 响应封装工具单元测试
|
||
- [x] 4.0 集成 Redis
|
||
- [x] 4.1 编写 Redis 配置与连接池
|
||
- [x] 4.2 实现 Redis 健康检查
|
||
- [x] 4.3 Redis 相关单元测试
|
||
- [x] 5.0 健康检查接口
|
||
- [x] 5.1 实现 /health 路由,返回服务与依赖健康状态
|
||
- [x] 6.0 配置中心优化
|
||
- [x] 6.1 所有配置集中到 config,支持多环境
|
||
- [x] 7.0 Swagger 文档完善
|
||
- [x] 7.1 增加全局响应示例、错误码说明
|