シンプルなProtobufメッセージの定義
スカラーフィールドを持つ基本的なprotobufメッセージの定義方法を学びます。syntax宣言、フィールド型、フィールド番号、proto3のデフォルト値セマンティクスを解説します。
Basic Messages
詳細な説明
シンプルなProtobufメッセージの構造
Protocol Buffersの最も基本的な単位はメッセージです。メッセージは名前付きフィールドで構成される構造化データ型で、各フィールドには型と一意のフィールド番号があります。最小限の例を示します:
syntax = "proto3";
message User {
int32 id = 1;
string name = 2;
string email = 3;
bool is_active = 4;
}
主要な構成要素
| 要素 | 目的 |
|---|---|
syntax = "proto3" |
protobufバージョンの宣言。コメント以外の最初の行に必要 |
message User |
Userという名前の新しいメッセージ型を定義 |
int32 id = 1 |
フィールド番号1の32ビット整数フィールド |
string name = 2 |
フィールド番号2のUTF-8文字列フィールド |
bool is_active = 4 |
フィールド番号4のブーリアンフィールド |
フィールド番号
すべてのフィールドにはフィールド番号として一意の正の整数が必要です。これらの番号はバイナリワイヤーフォーマットでフィールドを識別するため、メッセージが使用開始されたら変更すべきではありません。1-15の番号はエンコーディングで1バイトを使用するため、頻繁に使用されるフィールドに予約するのが最適です。
Proto3のデフォルト値
proto3では、すべてのフィールドに暗黙的なデフォルト値があります:数値型は0、ブーリアンはfalse、文字列は空文字列です。デフォルト値に設定されたフィールドはワイヤー上でシリアライズされず、帯域幅を節約します。
ユースケース
ユーザープロフィール、設定値、イベントペイロードなど、シンプルなフラット構造が必要なREST APIやgRPCサービスのデータ転送オブジェクトの定義。