go - 如何从 xxx.pb.go 获取服务描述
问题描述
当我使用 xxx.proto 生成一个 golang protobuf 文件时
,我看到 了
...
var _Auth_serviceDesc = grpc.ServiceDesc{
ServiceName: "protobuf.Auth",
HandlerType: (*AuthServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "GenerateToken",
Handler: _Auth_GenerateToken_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "auth.proto",
}
我怎样才能serviceDesc
摆脱这个包?
我想获取服务名称和方法
解决方案
访问服务和方法的唯一方法是通过FileDescriptorProto
proto 文件。或者,v2 proto API 包含一个变量,该变量将包含描述符 proto,以防您不知道文件名(请注意,单个 proto 包可能包含多个文件)。
有关此主题的更多讨论,请参阅https://github.com/golang/protobuf/issues/489(特别是 dsnet 关于 v2 proto API 在这方面如何工作的最后评论)。
推荐阅读
- python - 我怎样才能让这个 twitter 机器人工作?蟒蛇 3.8
- javascript - jQuery动态添加内容到div
- interface - Java问题包含抽象、接口和异常
- c++ - 无法在类中初始化 unique_ptr 的向量
- python - 数字总和直到达到个位数
- reactjs - 带有 rxjs 错误的相关请求:可观察 {_isScalar: false, _subscribe: f}
- javascript - Express-Handlebars 部分的 Vue.js 等效项是什么?
- javascript - 以设定的时间增量循环对象
- javascript - 如果它是动态创建的,则知道选中的复选框 - Django
- angular - ngModel在角度的for循环中不起作用