$ gf gen pb -h
USAGE
gf gen pb [OPTION]
OPTION
-p, --path protobuf file folder path
-a, --api output folder path storing generated go files of api
-c, --ctrl output folder path storing generated go files of controller
-h, --help more information about this command
EXAMPLE
gf gen pb
gf gen pb -p . -a . -p .
2 Comments
Cyberhan123
尝试了一下这个工具,发现一些小问题:
git submodule,而且还因为一些原因需要支持http协议)
2. path 参数不在mainfest的规定目录下,生成的文件会出现目录错乱,比如:
3.因为生成的时候会有改写文件的逻辑,而如果携带类似
gRPC-Gateway这样的结构则会出现报错:
https://grpc-ecosystem.github.io/grpc-gateway/docs/tutorials/adding_annotations/#using-protoc
比如,如下protobuf
朱华 Hunk
我同时使用了 gf gen pb的三个参数:-a -c -p ,我发现 只有 -p生效了,-a 与 -c 根本就没生效,依然是采用的api及internal/controller。而不是我自定义的值。下面是我的用法,看看有没有问题?
gf gen pb -a "app/platform-service/api" -c "app/platform-service/internal/controller" -p "protocol/platform"
一直在提示我api不存在,我在执行目录 下新建了api目录后,就换成一直提示我internal/controller不存在了。很明显api及controller一直是用的默认值api及internal/controller
我Debug了下gf,发现问题出在 CGenPbInput的定义上,Api与Ctrl用的OutputApi及OutputCtrl,导致进行mergeDefaultStructValue时匹配不到OutputApi及OutputCtrl。我自己先把CGenPbInput的字段名改成了Api及Ctrl。暂时能用了。不过我这个修改应该只是一个应急的方式,还是需要调整mergeDefaultStructValue,采用tag:name进行匹配才合适。