Your Name e5b0f65156
Some checks failed
CI / build_test_package (push) Has been cancelled
CI / auto_merge (push) Has been cancelled
docs: update agent rules and add latest e2e reports
2026-03-23 19:32:24 +08:00

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
    • 使用(仅凭明文密钥,无需 IDPOST /api/v1/api-keys/validate
  • 用户端体验

    • 邀请信息:GET /api/v1/me/invitation-info
    • 邀请好友分页:GET /api/v1/me/invited-friends
    • 海报图片:GET /api/v1/me/poster/image
    • 海报 HTMLGET /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

Description
蚊子项目 - Mosquito Project
Readme 5.8 MiB
Languages
Java 60.6%
Shell 39.4%