プロトコル バッファ v3

この章では、API 設計でプロトコル バッファを使用する方法について説明します。デベロッパー エクスペリエンスを簡素化し、ランタイム効率を高めるために、gRPC API では、API 定義にプロトコル バッファ バージョン 3(proto3)を使用することが推奨されます。

プロトコル バッファは、データ構造スキーマとプログラミング インターフェースを定義するための、言語中立でプラットフォームに依存しないシンプルなインターフェース定義言語(IDL)です。プロトコル バッファは、バイナリとテキストの両方の送信形式をサポートし、さまざまなプラットフォーム上のさまざまなワイヤ プロトコルで動作します。

プロトコル バッファの最新バージョンである Proto3 には、proto2 からの次の変更が含まれます。

  • フィールド プレゼンス(hasField)は、プリミティブ フィールドでは使用できません。設定されていないプリミティブ フィールドには、言語が定義されたデフォルト値が含まれます。
    • メッセージ フィールドのプレゼンスは引き続き使用でき、コンパイラによって生成された hasField メソッドを使用したり、null や実装によって定義された標識値と比較したりしてテストすることができます。
  • フィールドのユーザー定義デフォルト値は使用できなくなりました。
  • 列挙型の定義は、列挙値 0 から開始する必要があります。
  • 必須フィールドは使用できなくなりました。
  • 拡張機能は使用できなくなりました。代わりに、google.protobuf.Any を使用します。
    • 下位互換性やランタイム互換性の理由から、google/protobuf/descriptor.proto について特別な例外が許可されています。
  • グループ構文は削除されます。

これらの機能は、API 設計の単純化、安定化、パフォーマンス向上のために削除されました。たとえば、メッセージをログに記録する前に、機密情報の削除など、一部のフィールドのフィルタリングが必要になることがよくあります。フィールドが必須である場合、フィルタリングすることができません。

詳細については、プロトコル バッファをご覧ください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...