この記事は筆者の.proto ファイルからのgolangコード生成時の失敗談を元に理解を深めていただく記事です。
(そんなん読めばわかるだろ!って話だったのですが、大目に見てください)
protocの公式サンプル
上記記事のサンプルでは、.proto ファイルからGo言語へのコード生成をする際に
$ protoc --go_out=. --go_opt=paths=source_relative \
--go-grpc_out=. --go-grpc_opt=paths=source_relative \
helloworld/helloworld.proto
としています。
とりあえず生成してみる
上記の記事を見た私は、オプションいっぱいでわからないので、とりあえず最小限で実行してみよう!と思い
$ protoc --go_out=.
と実行してみました。すると、helloworld.pb.goは生成されるけど、helloworld_grpc.pb.goが生成されていません!
なぜでしょう?
理由は簡単で、--go-grpc_out=が指定されていないからです!
-
--go_outは、*.pb.go -
--go-grpc_optは、*._grpc.pb.go
の生成に関係しているということなんですね~。
そりゃそうか
皆さんも、コード生成時には、--go_outと --go-grpc_optの指定をお忘れなきよう。それでは~