google.golang.org/protobuf
という公式ライブラリにコンパイラが組込まれています。[]
){}
)null
null
null
0
0.0
false
""
)0
google.protobuf.StringValue
などのラッパー型が提供されています。// Required
というコメントをつけています。アノテーションを用意する場合もあるようです。stream
という指定をつけることで、 Server Streaming / Client Streaming / BiDi Streaming という特別なモードにすることもできます。これはJavaScriptのジェネレーター関数のようなものをイメージするといいでしょう。使う機会は多くないですが、覚えておくと車輪の再発明を防げるかもしれません。rpc
の外側にある service
はRPCの実装単位です。 service
内に複数の rpc
がある場合、それらのrpcはまとめて実装することになります。Rubyでは service
ごとに1つのクラスが生成されますし、 Goでは service
ごとに1つのinterfaceが生成されます。UpperCamelCase
CAPITALIZED_NAMES_WITH_UNDERSCORES
ENUM_TYPE_UNSPECIFIED
BooksController
に #index
, #show
, #delete
などのアクションを生やすことがあります。同様に、Google API Design Guideでも操作対象のリソースを service
にして、その下に標準的な名前の rpc
を置くことを推奨しています。