文档开发者 (SDK)SDK 概览

开发者 SDK 概览

如果内置的可视化 App Builder 无法满足你的复杂业务需求,你可以通过 OSDK (Ontology SDK) 将平台能力直接无缝集成到你的自有代码中。

Loambase Foundry 的 SDK 并不是简单的 REST API 封装,而是一套基于代码生成 (Codegen) 的强类型工具链。这意味着你的代码在编译期就能获得完整的字段补全和类型校验。


1. SDK 架构分层

为了满足不同场景的开发需求,OSDK 划分为三个主要层级与多个子包:

  1. Platform SDK:负责底层基础设施(如数据源、流水线调度、应用发布等)的管理,通常被用于 Node.js CLI 脚本或 CI/CD 流程中。
  2. React SDK:负责前端集成,提供带缓存、自动重试和 Optimistic Update (乐观更新) 的强类型 React Hooks。
  3. Agent SDK:负责 AI 整合,自动将本体模型转换为 OpenAI / LangChain 兼容的 Tool Calling 接口。

代码生成 (Codegen) 机制

无论你使用哪个 SDK,第一步永远是运行 @loambase/osdk-cli。 该 CLI 会拉取平台最新的本体 Schema,并在你的项目中生成一个 .osdk/ 目录。你的业务代码将直接依赖这个生成的目录,从而获得对 EmployeeOrder 等业务对象的完美类型推导。


2. 核心特性:对象图谱漫游

在传统的开发中,如果我们要查询一个订单关联的客户信息,通常需要手写 SQL 的 JOIN。在 OSDK 中,一切变成了优雅的对象链式调用(Graph Traversal):

// 1. 获取入口节点 (Order)
const order = await client.objects.Order.get("ORD-123");
 
// 2. 向前遍历:获取该订单对应的客户信息 (Customer)
const customer = await order.customer.get();
 
// 3. 向后遍历:获取该订单下的所有子项 (LineItems),并支持链式过滤
const items = await order.lineItems
  .filter(item => item.price.gt(100))
  .fetch();

OSDK 的底层 DataLoader 会自动将这些对象遍历操作收集起来,并合并为高效的批量网络请求,避免 N+1 查询问题。


3. 核心特性:受控的写操作 (Action)

OSDK 打破了传统的 CRUD 范式。你无法通过 client.objects.Order.update(...) 来直接修改数据。

所有的数据变更,必须通过在平台上定义好的 Action 触发。

这带来了三个巨大的好处:

  1. 防腐与安全:前端或 Agent 永远无法越权修改未暴露的字段。
  2. 强类型入参:调用时编译器会明确提示你需要传入 reasonInputnewStatus
  3. 自动防重与审计:Action 默认支持幂等性(Idempotency Key),并且每次调用都会被平台审计。
// 触发晋升员工的 Action
const result = await client.actions.promoteEmployee({
  employeeId: "EMP-001",
  reasonInput: "Outstanding performance",
  newLevel: "L5"
});

请在左侧导航栏选择你感兴趣的特定 SDK 模块深入了解。