Looker API 和 SDK 支持政策

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 的地方都可以使用 Python SDK。如需了解有关受支持的 Python 版本的最新信息,请参阅 Python SDK 自述文件
TypeScript Looker codegen TypeScript SDK 适用于 nodebrowser 应用。
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 codegen 项目生成,并针对每个 SDK 使用手写运行时库
  • Swagger - 由 Swagger 代码生成器开源工具生成。对于 Looker 代码生成器不直接支持的编程语言,我们在 codegen 代码库中提供了一个旧版生成器选项,该选项应该可以简化自定义生成。此“旧版”生成器使用开源 OpenAPI 代码生成器,该生成器取代了 Swagger 代码生成器。
  • 手写方式 - 所有源代码均为手写方式,不涉及任何代码生成。

SDK 版本控制

Looker 最近采用了一种版本控制方案,将语言 SDK 与用于生成语言 SDK 的 Looker 版本相匹配。例如,这意味着使用 Looker 21.10 规范生成的 SDK 的版本将以 21.10.* 开头。

语言 SDK

最新的语言 SDK(由 Looker codegen 生成)与 Looker 版本一致。例如,Python SDK 和 TypeScript SDK 应与其各自的 Looker 版本相匹配。

当我们将旧版语言 SDK 迁移到 Codegen 或将现有的代码生成 SDK 发布到其软件包管理器时,SDK 版本将设置为与 Looker 发布版本一致。

运行时库软件包版本

TypeScript SDK 依赖于由 Looker 编写的单独运行时库 (RTL) 软件包,该软件包支持通用 REST API。由于此软件包并非特定于任何 Looker 版本,因此其版本与使用它的语言 SDK 无关。

将其他语言 SDK 发布到软件包管理器时,它们的 RTL 可能会成为单独的软件包。任何单独的 RTL 软件包都将使用语义版本控制,而不是匹配的 Looker 发布版本。