Skip to content

qegj567-cloud/ReiStandard

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ReiStandard

主动消息 API 标准:统一的定时消息推送 API 规范,支持端到端加密、多消息类型和 Serverless 部署。


📚 文档导航

🎯 快速开始

部署教程本地测试

📖 核心文档

1. API 技术规范 - 后端 API 标准

完整的后端 API 技术规范,包括:

  • 7 个 API 端点的详细定义(请求/响应格式、错误代码)
  • 端到端加密架构(AES-256-GCM)
  • 三种消息类型(fixed、prompted、auto)
  • 认证与授权体系
  • 数据库 Schema
  • 安全考虑和最佳实践

1.5. Service Worker 规范 - 前端 SW 标准

完整的 Service Worker 实现规范,包括:

  • 推送通知接收和显示
  • 缓存策略和资源管理
  • 生命周期事件处理
  • 消息通信机制
  • 离线功能支持
  • 性能优化和安全考虑

2. 部署教程 - 快速部署指南

5 步快速部署到 Serverless 平台:

  • 复制文件到项目
  • 安装依赖
  • 配置环境变量
  • 初始化数据库
  • 配置 Cron Job

适用平台:Vercel、Netlify、Github Pages 等

3. 本地测试 - 开发环境测试

本地测试脚本使用指南:

  • 完整的端点测试(7 个 API 端点)
  • 加密/解密验证
  • 参数验证测试
  • 自动清理测试数据

适合:开发时快速迭代验证

4. 生产监控 - 持续健康检查

将测试端点部署为 Serverless Function:

  • 生产环境持续监控
  • CI/CD 集成
  • 监控告警配置
  • 一键访问测试结果

适合:生产环境 API 健康状态监控


🚀 快速开始

部署 API

# 1. 复制实现代码到项目 cp -r examples/api ./ cp -r examples/lib ./ # 2. 安装依赖(Serverless 平台配置 package.json) npm install web-push @neondatabase/serverless # 3. 配置环境变量(.env.local) DATABASE_URL=postgresql://... VAPID_EMAIL=your@email.com NEXT_PUBLIC_VAPID_PUBLIC_KEY=... VAPID_PRIVATE_KEY=... CRON_SECRET=$(openssl rand -base64 32) ENCRYPTION_KEY=$(openssl rand -hex 32) # 4. 初始化数据库 curl -X GET "http://localhost:3000/api/v1/init-database" \ -H "Authorization: Bearer YOUR_INIT_SECRET" # 5. 部署到 Vercel vercel --prod

详细步骤请参考:examples/README.md

测试验证

本地测试(开发环境):

cd tests ./run-test.sh

生产监控(部署后):

# 浏览器访问 https://your-domain.com/api/test-active-messaging

📦 项目结构

ReiStandard/ ├── standards/ │ ├── active-messaging-api.md # API 技术标准规范(后端) │ └── service-worker-specification.md # Service Worker 规范(前端) ├── examples/ │ ├── api/v1/ # API 实现示例代码 │ │ ├── init-database.js # 数据库初始化 │ │ ├── get-master-key.js # 主密钥分发 │ │ ├── schedule-message.js # 创建定时任务 │ │ ├── send-notifications.js # Cron 触发处理 │ │ ├── update-message.js # 更新任务 │ │ ├── cancel-message.js # 取消任务 │ │ └── messages.js # 查询任务列表 │ └── README.md # 部署教程 ├── docs/ │ ├── TEST_README.md # 本地测试指南 │ └── VERCEL_TEST_DEPLOY.md # 生产监控部署 ├── tests/ │ ├── test-active-messaging-api.js # 本地测试脚本 │ ├── test-vercel-function.js # Vercel Function 测试端点 │ └── run-test.sh # 快速启动脚本 └── README.md # 本文件 

🔗 外部资源


🤝 贡献

欢迎对本标准提出改进建议:

  1. 提交 Issue 描述问题或改进建议
  2. Fork 仓库并创建 Pull Request
  3. 或在 QQ 群内提出建议

📄 许可

本标准采用 CC BY-NC-SA 4.0(Creative Commons 署名-非商业性使用-相同方式共享)协议发布。


👥 致谢

本标准基于 Whale小手机 团队的主动消息实现经验总结而成。特别感谢:TO(发起人)、汤圆、脆脆机、koko、糯米机、33小手机、Raven、toufu、菲洛图等老师的小手机项目的积极参与和支持。

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 93.4%
  • Shell 6.6%