シンプルな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サービスのデータ転送オブジェクトの定義。

試してみる — Protobuf Definition Parser

フルツールを開く