Skip to content

FAQ 与实践建议

1. 概念与调用模式

1.1 Instant API、WebAPI、OpenAPI、Client API 是一回事吗

不是一回事。

Instant API 是每个 dataset 自动具备的数据能力,例如 filteraggregategetOnecreate。WebAPI、OpenAPI、Client API 是调用这些能力的三种入口。

概念定位
Instant APIdataset 的标准数据能力
WebAPICookie 登录态入口,路径为 /api/{appCode}/{datasetCode}/{method}
OpenAPIHMAC 签名入口,路径为 /openapi/data/{method}
Client API个人身份认证入口,路径为 /client/{appCode}/{datasetCode}/{method}

1.2 三种模式分别用于什么场景

模式适用场景
WebAPILovrabet 生成页面、微前端子应用、同域浏览器环境
OpenAPI第三方系统、服务端任务、Agent 网关、跨系统集成
Client APICLI、Agent、本地脚本、服务端工具以个人身份访问数据

本文档里的 9 个 curl 原始接口以 WebAPI 为主要说明口径。OpenAPI 的详细签名、请求体和路径规则请看 OpenAPI

1.3 三种模式的认证方式有什么区别

模式认证方式请求头或凭证
WebAPICookie 会话认证Cookie
OpenAPIHMAC-SHA256 签名X-Time-StampX-App-CodeX-Dataset-CodeX-Token
Client API个人身份认证X-User-AK

AccessKey 只能放在服务端,不要写入前端代码、公开仓库或日志。

2. 接口范围与命名口径

2.1 为什么说是 9+

当前核心文档以 9 个常用能力为主:filteraggregategetOnecreatebatchCreateupdatedeletegetSelectOptionsexcelExport。写成 9+ 是为了给后续新增 dataset 标准能力留空间。

2.2 OpenAPI 是否支持全部 9 个 Instant API

不是。

WebAPI 和 Client API 覆盖 9 个核心 Instant API。OpenAPI 当前支持部分数据操作,例如 filteraggregategetOnecreatebatchCreateupdatedeletegetSelectOptionsexcelExport 当前不走 OpenAPI 模式。

2.3 getList 还要不要讲

新文档主推 filter。如果旧文档或旧代码里有 getList,可以作为兼容概念提到,但不要作为新的推荐入口。

3. 调用方式与 SDK

3.1 Node.js SDK 文档应该放在哪里

Instant API 文档只说明原始接口和 SDK 方法的对应关系,不复制 SDK 的完整 Reference。Node.js / TypeScript SDK 的安装、配置、认证、模型声明、类型和错误处理请看 TypeScript SDK

3.2 Java SDK 文档应该放在哪里

Java 服务端接入、请求对象、认证和调用示例请看 Java SDK。Instant API 文档不复制 Java SDK 的完整 Reference。

3.3 OpenAPI 详细文档应该放在哪里

OpenAPI 的认证、签名、路径、请求体和完整接口说明请看 OpenAPI

4. 与 SQL、Endpoint、Hook 的关系

4.1 filter 能替代 SQL 吗

不能。filter 适合列表和条件查询;aggregate 适合常见统计;复杂 SQL 口径、窗口函数、多层子查询和固定报表可以使用 Custom SQL。

4.2 Instant API 和 Backend Function Endpoint 怎么选

能表达为单个 dataset 的标准动作时,优先用 Instant API。需要跨多个 dataset、调用外部服务、做事务编排或异步流程时,使用 Endpoint。

Endpoint 可以在内部继续调用 Instant API,但 Endpoint 本身是更高一层的业务编排入口。

4.3 Hook 会不会影响所有调用方

Hook 挂在 Instant API 的后端执行链路上。通过 WebAPI、Client API,以及 OpenAPI 已支持的 Instant API 发起调用时,对应的 Before Hook / After Hook 会统一生效。

需要注意两点:

  • OpenAPI 暂不支持的 deletegetSelectOptionsexcelExport,不存在对应的 OpenAPI 调用链路。
  • Custom SQL、Endpoint 等不是某个 dataset 的同一个标准动作时,不应默认假设会触发该 dataset 的 Instant API Hook。

5. 实践建议

5.1 写操作如何降低风险

  • 先确认 dataset 详情和字段。
  • 自动化场景先使用 dry-run 或等价预检查。
  • 删除必须显式确认。
  • 业务校验放到 Before Hook。
  • 生产环境尽量用软删除和审计。

5.2 下拉框为什么用 getSelectOptions

因为很多表单只是需要某个 dataset 的选项数据,不需要查完整列表,也不需要额外写一个 options 接口。原则是“谁的数据,谁提供选项”。

5.3 文档维护规则

  • 新文档统一使用 Instant API
  • 数量口径统一写 9+
  • 9 个核心 API 的 curl 原始接口和 Node.js SDK 封装说明合并到 Instant API:9 个原始接口与 Node.js SDK 封装
  • SDK 细节引导到 TypeScript SDK / Java SDK 文档,不在 Instant API 文档里复制全部 SDK Reference。
  • OpenAPI 细节引导到 OpenAPI 文档,不用 WebAPI 的 curl 示例推断 OpenAPI 请求体。

基于飞书知识库同步生成,内容以飞书源文档为准