该存储库包含支持 REST 和 gRPC 协议的公共 Google API 的原始接口定义。阅读原始接口定义可以帮助您更好地理解 Google API,并帮助您更有效地使用它们。您还可以将这些定义与开源工具结合使用来生成客户端库、文档和其他工件。
构建 API 客户端库的推荐方法是通过 Bazel >= 4.2.2。
首先,安装bazel。
构建所有库:
bazel build //...
测试所有库:
bazel test //...
要构建所有语言的一个库:
bazel build //google/example/library/v1/...
要为一个库构建 Java 包:
bazel build //google/example/library/v1:google-cloud-example-library-v1-java
Bazel 包存在于 Java、Go、Python、Ruby、Node.js、PHP 和 C# 的所有库中。
Google API 通常部署为托管在不同 DNS 名称下的 API 服务。一项 API 服务可以实现多个 API 以及同一 API 的多个版本。
Google API 使用 Protocol Buffers 版本 3 (proto3) 作为接口定义语言 (IDL) 来定义 API 接口和有效负载消息的结构。 REST 和 RPC 版本的 API 使用相同的接口定义,可以通过不同的有线协议进行访问。
访问 Google API 的方式有多种:
JSON over HTTP:您可以使用 JSON over HTTP、使用 Google API 客户端库或第三方 API 客户端库直接访问所有 Google API。
gRPC 上的 Protocol Buffers:您可以通过 GRPC 访问此存储库中发布的 Google API,GRPC 是基于 HTTP/2 的高性能二进制 RPC 协议。它提供了许多有用的功能,包括请求/响应多路复用和全双工流。
Google Cloud 客户端库:您可以使用这些库来访问 Google Cloud API。它们基于 gRPC 以获得更好的性能,并提供惯用的客户端界面以获得更好的开发人员体验。
此存储库包含 Google API 定义和相关文件的副本。有关 Google API 客户端库、GRPC 或 Google Cloud 客户端库的讨论或提出问题,请参阅与每个区域相关的存储库。
该存储库使用反映 Google API 产品结构的目录层次结构。一般来说,每个API都有自己的根目录,每个主要版本的API都有自己的子目录。 proto 包名称与目录完全匹配:这样可以轻松找到 proto 定义,并确保生成的客户端库在大多数编程语言中具有惯用的命名空间。除了 API 目录之外,还有 GAPIC 工具包的配置文件。
注意: API 的主要版本用于指示 API 的重大更改。
要在此存储库中生成 Google API 的 gRPC 源代码,您首先需要在本地计算机上安装 Protocol Buffers 和 gRPC,然后可以运行make LANGUAGE=xxx all
来生成源代码。您需要将生成的源代码集成到您的应用程序构建系统中。
注意: Makefile 仅用于生成整个存储库的源代码。它不适用于为特定 API 生成可链接的客户端库。请参阅 https://github.com/googleapis 下的其他存储库来生成可链接的客户端库。
由于 Go 具有不同的目录结构,因此很难从该存储库生成 Go gRPC 源代码。请改用此存储库。