【发布时间】:2019-02-21 10:17:12
【问题描述】:
我主要对在 Java 中执行此操作感兴趣,但看到任何语言的解决方案都会有所帮助。
根据我正在阅读使用 gRPC 的默认工作流程的各种文档是
- 写一个
.proto文件 - 从该文件生成客户端和/或服务器代码
- 编写程序并与生成的代码一起编译
我想做的是以编程方式读取消息架构(从.proto 文件或通过其他方式),然后将根据该架构布局的一些数据发送到某个地址。
我现在能看到的唯一方法是脱壳,在临时目录中生成代码,调用编译器,加载编译后的代码,并使用反射来获得预期的功能。
这对我来说听起来像是一种极端的黑客行为。有没有更简单的选择?
【问题讨论】:
-
我不确定我是否理解这个问题。如果您使用 proto 定义,则格式始终为 Protobuf,而不是在运行时确定
-
您打算如何使用未知模式填充对象?
-
这是已知的——只是在程序编译的时候还没有。本质上,我正在尝试编写一个工具来 ping 不同的服务。编译工具时我无法生成代码,因为那时我不知道我将与哪些服务进行交互。
-
我们有一个类似的用例:一个当前基于输入测试配置执行 REST 调用的测试工具,并且应该能够对 gRPC 调用执行相同的操作。速度并不重要。