LoginSignup
0
0

gRPCでGoのボイラーテンプレートが生成されるディレクトリについて

Last updated at Posted at 2023-12-24

下記の公式ドキュメントを参考にprotoファイルからボイラーテンプレートを自動生成しようとしましたが、オプションの意味が分かりづらく思ったようなディレクトリに作成されませんでした。
https://grpc.io/docs/languages/go/basics/#generating-client-and-server-code

結論から言うと以下です。

オプション 意味
--go_out= *.pb.goファイルが作成される起点となるディレクトリ
--go_opt=paths= source_relativeを指定すると--go_outで指定した直下に*.pb.go`ファイルがさ生成される
--go-grpc_out= *_grpc.pb.goファイルが作成される起点となるディレクトリ
--go-grpc_opt=paths= source_relativeを指定すると--go-grpc_outで指定した直下に*_grpc.pb.go`ファイルがさ生成される

--go_out

.を指定するとprotoファイルと同ディレクトリをコードを生成する起点とします。
.を指定せず,gen/apiなどを指定すれば、コマンドを実行したパスから相対パスのディクレトリにすることも可能です。

--go_opt=paths

goの場合、protoファイルでoption go_package = "github.com/xxx/yyy";のような指定をすると思いますが、その場合、それに対応したディクトリにコードが表示されてしまいます。
例えば、--go_out=gen/apiを指定した場合、自動生成されるコードのパスはgen/api/github.com/xxx/yyyとなってしまいます。
--go_opt=paths=source_relativeを指定すると、gen/apiのパスにコードが自動生成されるようにすることができます。

--go-grpc_out--go-grpc_opt=pathsについても同様です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0