协议生成的独立客户端和服务器
Separate client and server generated by protoc
我正在尝试 protoc-generated 服务器接口和客户端实现在单独的包中
我的 .proto
文件的 header 部分如下:
syntax = "proto3";
option go_package = "github.com/<username>/<myservice>/pkg/grpc";
我正在使用此命令生成 .go
个文件:
protoc --go_out=. --go_opt=paths=source_relative\
--go-grpc_out=. --go-grpc_opt=paths=source_relative\
pkg/grpc/*.proto
它生成 pkg/grpc/<name>.pb.go
个包含模型的文件和 pkg/grpc/<name>_grpc.pb.go
个包含服务器接口和客户端实现的文件(图片)
但我希望服务器转到 internal/pkg/grpc/
,而客户端和模型保留在 pkg/grpc/
内,并且服务器正确导入模型。
版本:
protoc
版本为 libprotoc 3.19.0
protoc-gen-go-grpc
版本为 protoc-gen-go-grpc 1.1.0
protoc-gen-go
版本为 protoc-gen-go v1.27.1
我是 golang 和 protobuf 的新手,所以如果我问的问题恰好是不好的做法,请随时指出我惯用的做法
似乎没有执行此操作的选项。插件 protoc-gen-go-grpc
将输出 service 代码写入带有 _grpc.pb.go
后缀的同一文件,其中“service”包括客户端和服务器代码。
您只能为每个插件定义不同的输出路径:
protoc-gen-go
支持 --go_out
和 --go_opt
标志
protoc-gen-go-grpc
支持 --go-grpc_out
和 --go-grpc_opt
标志
我正在尝试 protoc-generated 服务器接口和客户端实现在单独的包中
我的 .proto
文件的 header 部分如下:
syntax = "proto3";
option go_package = "github.com/<username>/<myservice>/pkg/grpc";
我正在使用此命令生成 .go
个文件:
protoc --go_out=. --go_opt=paths=source_relative\
--go-grpc_out=. --go-grpc_opt=paths=source_relative\
pkg/grpc/*.proto
它生成 pkg/grpc/<name>.pb.go
个包含模型的文件和 pkg/grpc/<name>_grpc.pb.go
个包含服务器接口和客户端实现的文件(图片)
但我希望服务器转到 internal/pkg/grpc/
,而客户端和模型保留在 pkg/grpc/
内,并且服务器正确导入模型。
版本:
protoc
版本为libprotoc 3.19.0
protoc-gen-go-grpc
版本为protoc-gen-go-grpc 1.1.0
protoc-gen-go
版本为protoc-gen-go v1.27.1
我是 golang 和 protobuf 的新手,所以如果我问的问题恰好是不好的做法,请随时指出我惯用的做法
似乎没有执行此操作的选项。插件 protoc-gen-go-grpc
将输出 service 代码写入带有 _grpc.pb.go
后缀的同一文件,其中“service”包括客户端和服务器代码。
您只能为每个插件定义不同的输出路径:
protoc-gen-go
支持--go_out
和--go_opt
标志protoc-gen-go-grpc
支持--go-grpc_out
和--go-grpc_opt
标志