【gRpc】Protocol Buffersを使ってgolangソースを生成する際のWARNINGを解消

2020年11月15日

以下記事で行ったProtocol Buffersを使ったgolangソースの生成する際のWARNINGを解消する方法です。

【gRpc】WindowsでProtocol Buffersを使ってgolangソースを生成する

環境情報

OS: Windows10 64bit
golang: v1.15.3
Protocol Buffers: v3.13.0

サンプルコードのリポジトリ

今回使用したサンプルは以下のリポジトリに配置しています。

https://github.com/i-shinya/grpc-client-server-sample

今回までのサンプルコードは以下のコミットで確認できます。

今回までのコード

Protocol Buffersを使ってgolangソースを生成する際のWARNINGを解消

コードの生成自体は成功するのですが、WARNINGが発生しました。

2020/11/03 22:06:20 WARNING: Missing 'go_package' option in "protos/sample.proto",
please specify it with the full Go package path as
a future release of protoc-gen-go will require this be specified.
See https://developers.google.com/protocol-buffers/docs/reference/go-generated#package for more information.

記載内容的にはgo_packageオプションが無いとのことです。ですので、上記の記事で使ったファイルに記載を追加しました。

syntax = "proto3";
option go_package = "protos/adapter"; // こちらの記載を追加
package adapter; // こちらの記載を追加

service Sample {
  rpc GetMySample (GetMySampleMessage) returns (MySampleResponse) {}
}
message GetMySampleMessage {
  string target_Sample = 1;
}
message MySampleResponse {
  string name = 1;
  string kind = 2;
}

出力先の階層は変わりますが、これでWARNINGが解消できます。

package名も追加しadapterとしていますが、これはgRpcによる生成メソッドは飽くまでプレゼンテーション層に配置し、adapterとして使用する想定のためです。

最終的なディレクトリ構成

前回生成したsample.pb.goは削除し、最終的なディレクトリ構成は以下のようになりました。

.
|-- adapter
|   `-- gen_grpc
|       `-- sample.pb.go
|-- protoc
`-- protos
    `-- sample.proto

 

参考

https://blog.ebiiim.com/posts/grpc-with-go-mod/