このリポジトリには、REST プロトコルと gRPC プロトコルの両方をサポートするパブリック Google API の元のインターフェイス定義が含まれています。元のインターフェース定義を読むと、Google API をより深く理解し、より効率的に利用できるようになります。これらの定義をオープン ソース ツールで使用して、クライアント ライブラリ、ドキュメント、その他の成果物を生成することもできます。
API クライアント ライブラリを構築する推奨方法は、Bazel 以降 4.2.2 を使用することです。
まずはベゼルを取り付けます。
すべてのライブラリをビルドするには:
bazel build //...
すべてのライブラリをテストするには:
bazel test //...
すべての言語で 1 つのライブラリを構築するには:
bazel build //google/example/library/v1/...
1 つのライブラリの 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 サービスとしてデプロイされます。 1 つの API サービスが複数の API および同じ API の複数のバージョンを実装する場合があります。
Google API は、プロトコル バッファー バージョン 3 (proto3) をインターフェイス定義言語 (IDL) として使用して、API インターフェイスとペイロード メッセージの構造を定義します。 API の REST バージョンと RPC バージョンの両方に同じインターフェイス定義が使用され、異なるワイヤ プロトコル経由でアクセスできます。
Google API にアクセスするには、いくつかの方法があります。
JSON over HTTP: Google API クライアント ライブラリまたはサードパーティ API クライアント ライブラリを使用して、JSON over HTTP を使用してすべての Google API に直接アクセスできます。
gRPC 上のプロトコル バッファ: このリポジトリで公開されている Google API には、HTTP/2 上の高性能バイナリ RPC プロトコルである GRPC を通じてアクセスできます。リクエスト/レスポンス多重化や全二重ストリーミングなど、多くの便利な機能を提供します。
Google Cloud クライアント ライブラリ: これらのライブラリを使用して、Google Cloud API にアクセスできます。これらはパフォーマンスを向上させるために gRPC に基づいており、開発者エクスペリエンスを向上させるための慣用的なクライアント サーフェスを提供します。
このリポジトリには、Google API 定義と関連ファイルのコピーが含まれています。 Google API クライアント ライブラリ、GRPC、または Google Cloud クライアント ライブラリに関するディスカッションや問題提起については、各領域に関連付けられたリポジトリを参照してください。
このリポジトリは、Google API 製品構造を反映したディレクトリ階層を使用します。一般に、すべての API には独自のルート ディレクトリがあり、API の各メジャー バージョンには独自のサブディレクトリがあります。プロト パッケージ名はディレクトリと正確に一致します。これにより、プロト定義を簡単に見つけることができ、生成されたクライアント ライブラリがほとんどのプログラミング言語で慣用的な名前空間を持つことが保証されます。 API ディレクトリと並んで、GAPIC ツールキットの構成ファイルも存在します。
注: API のメジャー バージョンは、API への重大な変更を示すために使用されます。
このリポジトリで Google API の gRPC ソース コードを生成するには、まずプロトコル バッファーと gRPC の両方をローカル マシンにインストールする必要があります。その後、 make LANGUAGE=xxx all
実行してソース コードを生成できます。生成されたソース コードをアプリケーション ビルド システムに統合する必要があります。
注: Makefile は、リポジトリ全体のソース コードを生成することのみを目的としています。特定の API 用のリンク可能なクライアント ライブラリを生成するためのものではありません。リンク可能なクライアント ライブラリを生成するには、https://github.com/googleapis にある他のリポジトリを参照してください。
Go はディレクトリ構造が異なるため、このリポジトリから Go gRPC ソース コードを生成するのは困難です。代わりにこのリポジトリを使用してください。