はじめに
gRPC便利ですね~。
ただgRPCを使っているとファイルのボリュームが増えてきていくつかのファイルにmessageやserviceを分けたいと思う時ありますよね?
大きい .proto ファイルは複数のファイルに分割できます。サービス、リソース メッセージ、リクエスト / レスポンス メッセージは、必要に応じて別々のファイルに移動します。
https://cloud.google.com/apis/design/file_structuretype/* - 異なる API 間、同じ API の異なるバージョン間、または API とサービスの実装間で共有される型を含む proto ファイル。type/* の下にある型定義には、リリース後に互換性を損なう変更を加えるべきではありません。
https://cloud.google.com/apis/design/directory_structure
行く手を阻む undefined エラー
しかし複数ファイルに分け、例えばtypeディレクトリから共通のmessage型をImportして使おうとするとVSCodeでは困ったことになります。
undefinedエラー。。。
まあgRPCが使えないわけではないのですが、なんか気持ち悪い!!
Ctr+クリックで定義にも飛べないし、どうにかしたい!!!!
undefinedエラーを回避する設定
VSCodeで vscode-proto3 を使っている人であれば下記のように grpc/.vscode/settings.json に追加すればこのストレスから解き放たれます。
{
"protoc": {
"options": [
"--proto_path=hoge/pb/type" // protoファイルがあるディレクトリへのパス/
]
}
}