# 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 `。 - 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`。