如何从xxx.pb.go获取服务描述

时间:2019-10-29 14:31:30

标签: go protocol-buffers grpc

当我使用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
我想获取服务名称和方法

1 个答案:

答案 0 :(得分:0)

访问服务和方法的唯一方法是通过FileDescriptorProto获取原始文件。或者,v2 proto API包含一个变量,该变量将包含描述符原型,以防您不知道文件名(请注意,单个原型包可能包含多个文件)。

有关该主题的更多讨论,请参见where to put .env files(尤其是dsnet关于v2原型API在这方面如何工作的最后评论)。

相关问题