这个项目能做什么
@rapidrest/core 包是 RapidREST 生态系统中用于构建 RESTful 应用程序的通用实用程序和核心功能的集合。它提供了被其他 RapidREST 库和服务所使用的基础构建块,包括依赖注入、缓存、身份验证、消息传递、可观测性和通用辅助工具。
**对象生命周期与依赖注入**
该库包含一个 ClassLoader,可使用基于文件夹的命名空间约定在运行时动态发现类,以及一个 ObjectFactory 轻量级 DI 容器。依赖项可以通过装饰器 (@Inject, @Config, @Logger) 进行注入,对象生命周期通过 @Init 和 @Destroy 进行管理。
**缓存与会话存储**
通用的 SimpleStore 接口支持基于 TTL 的记录存储,并提供两种实现:用于进程内存储的 MemoryStore 和由 Redis 支持的 RedisStore(用于在多个应用程序实例之间共享状态)。此外还提供 loadMany, saveMany, loadSet 和 saveSet 等批量操作。
**认证与验证**
JWTUtils 提供 JSON Web Token 的创建、签名、验证和解码,并支持可选的基于密码或密钥的有效负载加密和压缩。UserUtils 提供角色、范围和组织成员资格检查。ValidationUtils 提供了一系列验证器,用于验证电子邮件、URL、电话、UUID、语义化版本、IP、日期、JSON 等,可与 @Validator 装饰器配合使用。
**消息传递与警报**
MessagingUtils 通过共享模板存储,利用 Handlebars 发送电子邮件、短信或 Slack 模板消息。AlertUtils 将基于优先级的事件警报 (P1–P5) 及其文件附件发送到外部警报服务。NotificationUtils 通过 Redis pub/sub 向单个用户频道发布实时推送通知,或广播给所有订阅者。
**可观测性**
预配置的 Winston Logger 会自动为日志行标记调用类和方法名称。TelemetryUtils 记录应用程序的遥测事件,并将其转发到配置的收集服务。
**通用实用程序**
包含 StringUtils, ObjectUtils, FileUtils, OASUtils(用于加载、缓存和查询 OpenAPI 规范), CacheUtils(有界逐出缓存)以及 ApiError 类(支持 HTTP 状态码和模板消息)。
**并发处理**
ThreadPool 管理一个 Node.js 工作线程池,根据 CPU 数量自动调整大小,支持类型化消息传递,并在工作线程崩溃时自动重启。
该包仅支持 ESM,目标环境为 Node.js >=24.0.0。必要的 peer 依赖包括 axios, redis (用于 RedisStore), reflect-metadata, winston 和 winston-transport。消息通道将根据需要动态加载可选包 (nodemailer, twilio, @slack/bolt)。
评论
0 评分人数达到10人后显示
登录后参与讨论。