原始 --go-grpc_out生成代码,go_out生成的代码

在previos产品中,我使用旧的原型生成-go,它允许使用插件并在同一个pb文件中生成序列化/反序列化和gRPC客户端/服务器


据我所知,protoc-gen-go v1.27.1将不允许插件和需求使用客户端\服务器代码的go-grpc_out标志


按照此命令操作


protoc -I /usr/local/include -I $PWD/api/dummy-proto  --go_out=generated --go-grpc_out=generated --go_opt=paths=source_relative proto/v1/foo.proto

我得到了


generated

|_proto

  |_v1

  |_dummy

  | |_foo_grpc.pb.go //package dummy

  |_foo.pb.go //package dummy

由于创建了“虚拟”文件夹foo_grpc.pb.go 函数看不到在 foo.pb.go 中生成的请求和响应


我做错了什么?是否可以像以前一样生成一个文件?在移动foo_grpc后,它将正常工作,与 foo.pb.go 处于同一水平。


也可以使用旧的标志像和声明包与M没有斜杠和没有go_options在原型喜欢--go_out=import_path="-go_out=import_path=grpc_v1_proto,M$PWD/proto/v1/foo.proto=grpc_v1_proto"


foo.proto


syntax = "proto3";


package dummy.v1.foo;

option go_package = "proto/v1/dummy";


import "proto/v1/structures.proto";


service FooService {

  rpc reverse(ReverseRequest) returns (ReverseResponse);

  rpc getBar(GetBarRequest) returns (GetBarResponse);

}


message ReverseRequest {

  string text = 1;

}


message ReverseResponse {

  string reversed_text = 1;

}


message GetBarRequest {

}


message GetBarResponse {

  structures.Bar bar = 1;

}


茅侃侃
浏览 90回答 1
1回答

繁星淼淼

根据注释,您需要添加 .这在基础教程中有所介绍(但这实际上只是给出了命令,没有太多细节)。--go-grpc_opt=paths=source_relative原始生成代码 grpc 使用与原始生成共享的代码来处理这些选项中的大多数,因此 Go 生成代码的文档可能会回答您的问题(只需更改为 )。go_optgo-grpc_opt
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go