Looker 提供多个 API 版本和多个使用这些 API 的语言 SDK。本文档介绍了 Looker API 版本和语言 SDK 的状态和支持政策。
支持级别
Looker API 版本和 SDK 的支持级别各不相同:
以下部分介绍了支持级别。
Looker 支持
Looker 支持以下 API 版本和语言 SDK。您可以向 Looker 支持团队提交支持服务工单,但必须遵守 Looker 支持服务准则。Looker 仅支持 API 4.0。
由社区提供支持
此级别仅适用于语言 SDK。问题会在相应 SDK 所用的 OpenSource 代码库中提交和管理。
语言 SDK 可能处于社区支持级别,原因如下:
- 它缺少达到 Looker 支持级别所需的功能。
- 在 Looker 完全支持之前,它需要更多支持和自动化基础架构(自动化测试、打包、文档、示例等)。
- 它基于已弃用的技术。
- 尚未经过足够多的不同用户的测试,因此无法确定是否可以从“Alpha”状态转为其他状态。
不支持
不提供支持。API 版本 3.0 和 3.1 不受支持。
API 版本
下表列出了截至 Looker 22.4 的三个已记录的 API 版本,并显示了它们的支持级别。
版本 | 支持 | 状态 | 说明 |
---|---|---|---|
3.0 | 不支持 | 已移除 | 此 API 已从 Looker 中移除。 |
3.1 | 不支持 | 已移除 | 此 API 已从 Looker 中移除。 |
4.0 | Looker | 稳定版 | 当前版本。您仍然可以添加新的端点、实参和结构属性。所有受支持的 Looker 语言 SDK 都使用 API 4.0。 |
任何未来的 API 版本都将以 Alpha 版的形式推出,然后经历 Beta 版、稳定版和弃用生命周期。
语言 SDK
Looker 的语言 SDK 在 Looker 的整个生命周期中不断发展,并使用各种工具和技术进行开发。所有 SDK 都直接或间接使用 Looker 的 API 规范文档。下表介绍了语言 SDK 的支持状态。
语言 | 支持 | 工具 | 说明 |
---|---|---|---|
Ruby | Looker | 手写 | 当前的 Ruby SDK 会读取 Looker API 规范,以动态构建 SDK 方法。 |
Python | Looker | codegen | Python SDK 可在任何可以使用 Python 的地方使用。如需了解有关支持的 Python 版本的最新信息,请参阅 Python SDK README。 |
TypeScript | Looker | codegen | TypeScript SDK 既可用于 Node 应用,也可用于浏览器应用。 |
Kotlin | 社区 | codegen | Kotlin SDK 用于 Android 移动应用和 Java 虚拟机 (JVM) 应用。 |
Swift | 社区 | codegen | Swift SDK 用于 iOS 和 macOS 应用。 |
R | 社区 | Swagger | LookR 是 R 编程语言的 Looker SDK,可与 R Studio 搭配使用。 |
其他 | 社区 | codegen | 由 Looker 的代码生成项目生成的其他语言 SDK(例如 C# [Look#] 和 Go [GoLook])由社区提供支持。问题应提交到 sdk-codegen 代码库。 |
工具图例
- codegen - 由 Looker 的 SDK 代码生成项目生成,并使用为每个 SDK 手写的运行时库。
- Swagger - 由 Swagger 代码生成器开源工具生成。对于 Looker 的代码生成器未直接支持的编程语言,我们在 codegen 代码库中提供了一个旧版生成器选项,该选项应可简化自定义生成。此“旧版”生成器使用开源 OpenAPI 代码生成器,该生成器是 Swagger 代码生成器的替代品。
- 手写 - 所有源代码都是手动编写的,不涉及任何代码生成。
SDK 版本控制
Looker 近期采用了一种版本控制方案,可将语言 SDK 与用于生成它们的 Looker 版本相匹配。例如,这意味着使用 Looker 21.10 规范生成的 SDK 的版本将以 21.10.* 开头。
语言 SDK
最新的语言 SDK(由 Looker 代码生成器生成)与 Looker 发布版本相匹配。例如,Python 和 TypeScript SDK 与各自的 Looker 发布版本相匹配。
随着我们将旧版语言 SDK 迁移到代码生成,或将现有的代码生成 SDK 发布到其软件包管理器,SDK 版本将设置为与 Looker 发布版本一致。
运行时库软件包版本
TypeScript SDK 依赖于 Looker 编写的单独运行时库 (RTL) 软件包,该软件包可泛化支持 REST API。由于它不特定于任何 Looker 版本,因此该软件包的版本与使用它的语言 SDK 无关。
当其他语言 SDK 发布到软件包管理器时,其 RTL 可能会成为一个单独的软件包。任何单独的 RTL 软件包都将使用语义化版本控制,而不是与 Looker 版本相匹配。