循序渐进 · 教学 · TypeScript v2(二)

本地本体 SDK(Local OSDK)

TypeScript v2 的本体 SDK 由资源导入自动生成,不用再手工安装和版本化一个独立包。这篇讲新建、命令行生成、以及旧仓库迁移。

全部目录 ← 上一篇 本地本体 SDK(Local OSDK) 下一篇 →
本文来源 · Source 内容整理自 Palantir Foundry 官方文档:
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,按下面的步骤来:

  1. 在 Code Repositories 或 VS Code 里打开 Resources 侧边面板。
  2. 点面板右下角的 Select。代码编辑器里会打开一个 Modify Import Resources 标签页。
  3. 从下拉菜单里选择一个可用的本体。
  4. 在侧边面板里勾选要导入的对象类型、链接类型、接口类型以及其他实体。
Resources 侧边面板,显示本体选择包名选择
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:

  1. 找到仓库里的 functions.json 文件,把 useSdkSidebar 设为 false
  1. 打开 Resources 侧边面板。点顶部的 Migrate 生成本地 SDK,并把自动生成的改动提交到仓库的 package.jsonpackage-lock.json 文件。
Resources 侧边面板,显示迁移到本地 SDK 的按钮
Resources 侧边面板,显示迁移到本地 SDK 的按钮

延伸阅读 · 相关页面

按主题横向跳转,不必顺着目录一篇篇读。

常见问题速答 · FAQ

关于「本地本体 SDK(Local OSDK)」,读者最常问的几个问题。

新建本地 SDK是什么?
新仓库如何一开始就使用本地 SDK。如果你是第一次为仓库创建本地 SDK,按下面的步骤来。
命令行生成 SDK是什么?
用 CLI 生成,适合自动化流程。如果你不用 VS Code,可以用 ./rune 命令行工具来生成和重新生成本地 SDK。先准备好开发环境。
迁移已有仓库是什么?
把旧的手工版本化 SDK 换成自动生成的本地 SDK。要把一个仓库从独立 SDK 迁移到本地 SDK。