$ 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 .
18 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
喜之郎
有解决嘛这个问题
shiqinfeng
把缺失的文件复制到manifest/protobuf下,然后执行make pb, 然后把api下面生成多余的文件删除即可, 比如api/google, 留下业务代码就行。
朱华 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进行匹配才合适。
yidashi
确实。改api参数压根没用
朱华 Hunk
我之前自己调整了参数后可以用了。现在用的最新版的工具,好像也可以。应该是修复了。
李焕
请问用2.5.1版本么
朱华 Hunk
我用的是2.5.0,看了下。好像是我自己编译的。可能是之前改过那里。
李焕
好吧 我更到2.5.1 还是这个问题
honggang
郭强
ioaocc
执行:gf gen pb
返回:command "protoc" not found in your environment, please install protoc first: https://grpc.io/docs/languages/go/quickstart/
请问这个需要怎么解决?? gogf cil tool 2.5.1,goframe 2.51. windows10环境
李焕
没有配置protoc,你要下载protoc,然后按上面回复你的链接,去下载和配置
李焕
gf gen pb -c external/controller,运行还是报output controller folder "internal/controller" does not exist,-c 没有作用
jarry8359
gf gen pbentity 命令,在mainfest/protobuf下生成proto文件
gf gen pb 命令,在api/pbentity下生成了文件,但是internal/controller下没有生成文件,输出日志只有api的生成文件
gogf最新版本2.5.1
零落
需要在proto文件 定义方法
零落
gf gen pb
项目路径不能有中文
切记切记
Merlin
proto生成的struc中tag有办法控制码,比如我不想要里面的omitempty,有什么办法去除吗
mysticzap
执行“gf gen pb”命令报以下错误:
>gf gen pb
D:\Projects\go\bin\\protoc.exe --proto_path=地址\app\iam\manifest\protobuf\pbentity --go_out=paths=source_relative:地址\app\iam\api --go-grpc_out=paths=source_relative:地址app\iam\api 地址\app\iam\manifest\protobuf\pbentity\iam_account.proto
protoc.exe: unknown argument "--proto_path=地址\\manifest\\protobuf\\pbentity" (this program should be run by protoc, not directly)
什么问题?