SuperAPI AI 工具集

velt-node-sdk-best-practices

通用与其它

查看项目

更新于 10-16 08:38

技能介绍

用途:为在 Node.js / TypeScript 服务端集成 @veltdev/node 的开发者提供实现规范与排错参考,适用于初始化 VeltSDK、调用 sdk.api.* 或 sdk.selfHosting.*、服务端生成 Velt 认证令牌(getToken)、为自托管配置 MongoDB 或 AWS S3、捕获与区分 SDK 错误,以及排查 result.success is undefined、is not a function、cannot find module mongodb 等症状。

核心心智模型:该 SDK 含两个彼此独立的后端,共用同一个 VeltSDK 实例,但在初始化要求、懒加载模式和响应结构上不同。sdk.api.* 是 Velt REST API 的轻量类型化封装,无需数据库,初始化后服务实例同步可用,成功响应为 { result: { status: 'success', message, data, ... } },失败抛出 VeltApiError。sdk.selfHosting.* 是服务端持久化层,需要数据库配置,服务实例通过 await sdk.selfHosting.getXxx() 懒加载并缓存,成功响应为 { success: true, statusCode: 200, data },失败返回 { success: false, statusCode, error, errorCode } 或抛出 VeltSDKError 子类。

规则分类与优先级:初始化与生命周期(CRITICAL,前缀 init-);sdk.api.(HIGH,前缀 api-);sdk.selfHosting.(HIGH,前缀 selfhost-);跨领域陷阱(MEDIUM,前缀 pitfalls-)。

要点:初始化需根据 REST-only 或自托管选择正确的 VeltSDK.initialize 形态,并在关闭时 await sdk.close()。sdk.api.* 中每个方法都要求 organizationId;activities、commentAnnotations、notifications 的 add/update 方法可传第二参数 { filterUnknownFields: true } 在写入前丢弃未知字段(可选、fail-open),可复用导出的 pickKnownFields / filterRequest / FilterSpec。selfHosting 的 saveAttachment(request, fileBuffer?, fileName?, mimeType?) 混合请求对象与位置参数,getAttachment(orgId, attachmentId) 为纯位置参数。getToken 在两个后端均为位置参数,sdk.selfHosting.token 是同步属性而非 getToken 加载器;错误类通过 instanceof 区分 VeltSDKError 及四个子类。可先读 AGENTS.md 压缩索引,再按需查阅 AGENTS.full.md 详细指南。缺失信息:安装命令、包版本与运行环境要求暂未提供。