本资料介绍 b24jssdk 的 REST 调用接口(actions API)。所有示例使用 TypeB24 类型的 $b24,因此同一段代码可在 B24Hook、B24Frame 和 B24OAuth 上运行;actions 按 API 版本发布为 $b24.actions.v2.* 与 $b24.actions.v3.*。旧接口 callMethod、callBatch、callBatchByChunk、callListMethod、fetchListMethod 已在 3.0.0 移除,调用它们的代码无法编译。
用途与选择:单次调用用 actions.v{2,3}.call.make;2–50 个相关调用用 batch.make;超过 50 个独立调用用 batchByChunk.make;数千个后台任务用 actions.v3.deferredBatch.make(onStatus 报告进度);小列表用 callList.make,大列表低内存用 fetchList.make(异步迭代器);v3 原生 tail 方法用 callTail.make / fetchTail.make;v3 聚合用 actions.v3.aggregate.make(标注为 @experimental)。默认使用 v2,需要 v3 表示时再用 v3,SDK 不再做版本自动检测。
分页与过滤:callList / fetchList 通过在 filter 中注入 [idField, '>', n] 并强制排序来模拟游标;callTail / fetchTail 使用服务器的原生 tail 游标 { field, value, order, limit },游标字段不得出现在 filter 中。v3 的 filter 只能使用数组形式或 FilterV3 逻辑组,不能使用 v2 的对象写法。游标停滞或倒退时会抛 JSSDK_ACTION_CURSOR_STALLED 或 JSSDK_ACTION_CURSOR_WENT_BACKWARDS。
批量与幂等:v3 批量项写 { method, query, as, parallel },SDK 用 params 键并做转换;v3 批量是全有或全无,不返回部分错误,v2 可设 isHaltOnError: false 收集逐条失败。v3 写入可传 idempotencyKey(1–255 个可打印 ASCII),成功响应保留 24 小时并重放,可用 isIdempotentReplay() 判断;同一键配不同请求体会被拒绝,batch 不接受该键,v2 忽略该头。注意 v3 上没有 crm.* 创建方法,这类写入需走 v2。