3

我正在尝试将日志发送到 Stackdriver,但我对我可以使用的两个依赖项的选项感到有些困惑——</p>

Google Cloud 客户端库推荐google-cloud 版本 0.35.0-alpha

日志记录文档建议我安装 google-cloud-logging 版本 1.14.0

谷歌搜索我想使用的LogEntryOperation会产生一个 google-api-services-logging 版本 v2-rev577-1.23.0。

谷歌 API 的底层通信机制是否不同?

其中哪一个功能最全,最不可能被弃用,并且在未来保持不变?为什么有这么多?

4

1 回答 1

3

Google Cloud 提供两种客户端库:

  1. 自动生成的库,直接导出 REST API。这些被称为“Google API 客户端库”。它们的优点是它们完整详细地涵盖了每种语言的每个 API。

    对于 Java,这些位于com.google.apis. 这是您在搜索 LogEntryOperation 时发现的。

  2. 旨在更加“自然”的手工制作的图书馆。这些被称为“谷歌云 API”。这些更容易使用并且更适合语言的使用方式。但是,它们可用于较少的 API/语言组合,并且并不总是覆盖 100% 的 API。

    对于 Java,这些位于com.google.cloud. 这是我们的文档推荐的。google-cloud只是所有可用库的便利包,包括特定于日志记录的google-cloud-logging包。

日志库就是一个很好的例子。由于实际的 REST API 公开了一个LogEntryOperation资源,因此自动生成的 API 只是创建了一个盲目复制它的LogEntryOperation类。

相比之下,手动创建的 API 有一个更简洁命名的Operation类。此外,手动创建的 API 提供了更好的静态构造器,Builder,并且命名first()last()方法更合理。

于 2018-02-26T19:02:01.400 回答