- 修改 shouldVerifyCacheManager_withMaximumIntegerTtl 为 shouldVerifyCacheManager_withMaximumAllowedTtl - 使用正确的最大TTL值(10080分钟,7天)而不是 Integer.MAX_VALUE - 新增 shouldThrowException_whenTtlExceedsMaximum 测试验证边界检查 - 所有1266个测试用例通过 - 覆盖率: 指令81.89%, 行88.48%, 分支51.55% docs: 添加项目状态报告 - 生成 PROJECT_STATUS_REPORT.md 详细记录项目当前状态 - 包含质量指标、已完成功能、待办事项和技术债务
38 lines
1.8 KiB
Markdown
38 lines
1.8 KiB
Markdown
# mosquito
|
||
|
||
Spring Boot 3 (Java 17) 应用,用于活动传播、邀请奖励与运营分析。
|
||
|
||
快速开始
|
||
- 构建与测试:`mvn -B -DskipTests=false clean verify`(将触发 Flyway 迁移与覆盖率门禁)
|
||
- 运行(开发):`mvn spring-boot:run`(默认 `dev` 配置)
|
||
|
||
关键端点
|
||
- 所有 JSON 响应统一为 `ApiResponse`,业务数据位于 `data` 字段。
|
||
- `/api/**` 需要 `X-API-Key`;`/api/v1/me/**`、`/api/v1/activities/**`、`/api/v1/api-keys/**`、`/api/v1/share/**` 还需要 `Authorization: Bearer <token>`。
|
||
- API 密钥
|
||
- 创建:`POST /api/v1/api-keys`
|
||
- 吊销:`DELETE /api/v1/api-keys/{id}`
|
||
- 使用(按 ID 校验并打点):`POST /api/v1/api-keys/{id}/use`
|
||
- 使用(仅凭明文密钥,无需 ID):`POST /api/v1/api-keys/validate`
|
||
|
||
- 用户端体验
|
||
- 邀请信息:`GET /api/v1/me/invitation-info`
|
||
- 邀请好友分页:`GET /api/v1/me/invited-friends`
|
||
- 海报图片:`GET /api/v1/me/poster/image`
|
||
- 海报 HTML:`GET /api/v1/me/poster/html`
|
||
- 海报配置:`GET /api/v1/me/poster/config`
|
||
|
||
- 缓存管理(需要管理令牌)
|
||
- 清空缓存:`DELETE /api/v1/cache/{cacheName}`
|
||
- 失效键:`DELETE /api/v1/cache/{cacheName}/{key}`
|
||
|
||
运维与安全
|
||
- 配置管理令牌:`app.cache.admin-token`(通过环境变量或配置文件注入)
|
||
- 缓存失效限流:`app.cache.rate-limit-per-minute`(默认 60)
|
||
- Redis 缓存分组 TTL(可在 `CacheConfig` 中调整):
|
||
- `leaderboards` 5m、`activities` 1m、`activity_stats` 2m、`activity_graph` 10m
|
||
- 生产环境必须设置 `app.security.encryption-key`(例如环境变量 `APP_SECURITY_ENCRYPTION_KEY`)
|
||
- 覆盖率门禁:`pom.xml` 中启用 JaCoCo,阈值 80%,在 `verify` 阶段校验
|
||
|
||
更多接口与错误码见 `docs/api.md`。
|