Protocol Buffer¶
はじめに¶
本サイトにつきまして、【IT技術の知見】はじめに - 俺の技術ノート をご認識のほど宜しくお願いいたします。
01. Protocol Buffer とは¶
異なる言語間やサーバー間で変換できるデータ記述型言語である。
RPC-API (例:gRPC) の仕様を実装により説明するためのインターフェース定義言語でもある。.proto ファイルに実装する。
02. 文法¶
enum¶
enum 型のデータを設定する。
enum GenderType {
UNKNOWN = 0;
MAN = 1;
WOMAN = 2;
}
message Person {
optional int32 id = 1;
optional string name = 2;
optional GenderType gender_type = 3;
}
map¶
キーと値の組合せからなる連想配列型のフィールドを設定する。
message¶
リクエストメッセージで送信するデータ構造を設定する。
syntax = "proto3";
message Person {
optional int32 id = 1;
optional string name = 2;
}
oneof¶
複数のフィールドのうち、いずれか 1 つのフィールドだけに値を設定できるグループを設定する。
package¶
pb ファイルに自動的に定義するパッケージ名を設定する。
例えば Go の場合、pb.go ファイルでパッケージ名を自動的に定義する。
package foo;
service¶
▼ service とは¶
関数 (rpc) とそのグループ (service) を設定する。
gRPC の API 仕様である。
service GreetingService {
rpc Hello (HelloRequest) returns (HelloResponse);
}
syntax¶
Protocol Buffer コンパイラーのバージョンを設定する。
Protocol Buffer コンパイラーは、proto ファイルから pb ファイルを自動的に作成する。
syntax = "proto3";