用途:为可扩展的服务端应用提供后端架构模式与最佳实践参考,覆盖 Node.js、Express 与 Next.js API 路由场景。
主要能力:
- API 设计:基于资源的 RESTful URL(如 GET /api/markets、GET /api/markets/:id、POST /api/markets、PUT/PATCH/DELETE /api/markets/:id),以及用查询参数实现过滤、排序与分页,例如 GET /api/markets?status=active&sort=volume&limit=20&offset=0。
- 架构模式:仓储模式抽象数据访问(如 MarketRepository 接口与 Supabase 实现)、服务层分离业务逻辑、中间件模式(如 withAuth 包装 NextApiHandler)。
- 数据库模式:查询优化(只选取需要列、避免 select('*'))、N+1 查询预防(批量取用户后用 Map 关联)、事务模式(通过 Supabase rpc 调用 SQL 函数 create_market_with_position)。
- 缓存:Redis 缓存层与 Cache-Aside 模式,示例用 redis.setex(key, 300, value) 设 5 分钟过期,并提供失效方法。
- 错误处理:ApiError 类、集中式 errorHandler(兼容 ZodError)、指数退避重试 fetchWithRetry(延迟 1s、2s、4s)。
- 鉴权与授权:JWT 校验 verifyToken、requireAuth,基于角色的权限表 rolePermissions 与 requirePermission。
- 限流:内存 RateLimiter 按标识与时间窗检查(示例 100 req/min,超限返回 429)。
- 后台任务:简单 JobQueue 以异步队列替代阻塞请求。
- 日志监控:结构化日志 Logger,输出 timestamp、level、message 与上下文(含 requestId)。
使用方式:作为编码参考与模式清单,在实现相应路由、服务、数据访问或运维逻辑时按需套用;示例含 TypeScript 代码,未提供安装命令或具体接入步骤。
适用场景:构建或重构 Node.js / Express / Next.js 后端、设计 API 结构、优化数据库访问、加缓存、统一错误与日志、接入鉴权与限流。
限制:资料未说明具体平台、收费与效果;仅应在任务与其范围明确匹配时使用,输出不能替代针对具体环境的验证、测试或专家评审;若缺少必要输入、权限、安全边界或成功标准,应停止并请求澄清。