为什么 Google 提供这么多客户端库?我应该将哪个用于 Stackdriver 日志记录?

Why does Google offer so many client libs? Which should I use for Stackdriver logging?

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

Google Cloud Client Library推荐google-云版本0.35.0-alpha

logging docs推荐我安装google-cloud-logging 1.14.0版本

谷歌搜索 LogEntryOperation I would like to use yields google-api-services-logging 版本 v2-rev577-1.23.0.

Google 的 API 之间的底层通信机制是否不同?

其中哪一个功能最全、最不可能被弃用并继续维护?为什么这么多?

Google Cloud 提供两种客户端库:

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

    对于 Java,这些在 com.google.apis 中。这是您在搜索 LogEntryOperation 时找到的内容。

  2. Hand-crafted 旨在更“自然”的库。这些被称为“Google Cloud APIs”。这些更易于使用,并且更适合语言的使用方式。但是,它们可用于较少的 API/language 组合,并不总是覆盖 100% 的 API。

    对于Java,这些在com.google.cloud中。这是我们的文档推荐的。 google-cloud 只是所有可用库的便利包,包括 logging-specific google-cloud-logging 包。

日志库是区别的一个很好的例子。由于实际的 REST API 公开了一个 LogEntryOperation resource, the auto-generated API just creates a LogEntryOperation class 盲目复制这个。

相比之下,手动创建的API有一个更简洁的命名Operationclass。另外,手动创建的API提供了更好的静态构造函数Builder,对first()last()方法的命名也更加明智。