循序渐进 · 教学 · TypeScript v2(二)
本地本体 SDK(Local OSDK)
TypeScript v2 的本体 SDK 由资源导入自动生成,不用再手工安装和版本化一个独立包。这篇讲新建、命令行生成、以及旧仓库迁移。
本文来源 · Source
内容整理自 Palantir Foundry 官方文档:
https://www.palantir.com/docs/foundry/functions/local-sdks/
原始标题:TypeScript v2 > Local Ontology SDKs
https://www.palantir.com/docs/foundry/functions/local-sdks/
原始标题:TypeScript v2 > Local Ontology SDKs
★
先记住这几条
① SDK 自动生成
根据你导入的资源自动生成,不再手工维护版本。
② 与资源导入绑定
导入什么资源,SDK 里就有什么类型。
③ 命令行也能生成
不只在 UI 里,CLI 同样可以生成 SDK。
④ 老仓库可迁移
已有仓库可以改成用本地 SDK。
0
写在前面
TypeScript v2 函数支持本地本体 SDK:OSDK 会根据你导入的资源自动生成,而不用手工做版本管理、也不用作一个单独的包来安装。这意味着 SDK 里的类型永远和你最新导入的资源保持一致。想要完整支持全局分支,本地 SDK 是必需的。
1
新建本地 SDK
新建本地 SDK
要点:新仓库如何一开始就使用本地 SDK。
如果你是第一次为仓库创建本地 SDK,按下面的步骤来:
- 在 Code Repositories 或 VS Code 里打开 Resources 侧边面板。
- 点面板右下角的 Select。代码编辑器里会打开一个 Modify Import Resources 标签页。
- 从下拉菜单里选择一个可用的本体。
- 在侧边面板里勾选要导入的对象类型、链接类型、接口类型以及其他实体。

随着你从本体里不断添加实体,SDK 会自动更新到新版本,仓库里也会生成对应的代码绑定。之后你就可以从 SDK 包(比如 @ontology/sdk)里导入本体实体,用在函数签名里。当你给函数打版本标签时,SDK 会在 CI 里生成,并和你的函数版本打包在一起,反映的是打标签那一刻的本体的状态。
2
命令行生成 SDK
命令行生成 SDK
要点:用 CLI 生成,适合自动化流程。
如果你不用 VS Code,可以用 ./rune 命令行工具来生成和重新生成本地 SDK。先准备好开发环境:
./rune env prepare第一次生成 SDK 时要提供一个包名:
./rune sdk generate --sdk-package-name ontology这个包名决定了你代码里本体实体的导入路径(例如 import { MyObjectType } from "@ontology/sdk")。包名可以随便取,但约定俗成用 ontology。
改完资源导入之后要重新生成 SDK:
./rune sdk generate如果仓库里没有 ./rune,跑一下 .palantir-scripts/install-rune 来安装它。
3
迁移已有仓库
迁移已有仓库
要点:把旧的手工版本化 SDK 换成自动生成的本地 SDK。
要把一个仓库从独立 SDK 迁移到本地 SDK:
- 找到仓库里的
functions.json文件,把useSdkSidebar设为false。
- 打开 Resources 侧边面板。点顶部的 Migrate 生成本地 SDK,并把自动生成的改动提交到仓库的
package.json和package-lock.json文件。

延伸阅读 · 相关页面
按主题横向跳转,不必顺着目录一篇篇读。
常见问题速答 · FAQ
关于「本地本体 SDK(Local OSDK)」,读者最常问的几个问题。
新建本地 SDK是什么?
新仓库如何一开始就使用本地 SDK。如果你是第一次为仓库创建本地 SDK,按下面的步骤来。
命令行生成 SDK是什么?
用 CLI 生成,适合自动化流程。如果你不用 VS Code,可以用 ./rune 命令行工具来生成和重新生成本地 SDK。先准备好开发环境。
迁移已有仓库是什么?
把旧的手工版本化 SDK 换成自动生成的本地 SDK。要把一个仓库从独立 SDK 迁移到本地 SDK。