我们有一个用例,在这个用例中,我们定义了许多不同的RPC。我们使用google的protobuf java生成了一个基于java的grpc存根代码
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
要转换为like
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
rpc SayHelloStreaming (stream HelloReply) returns (stream HelloRequest) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
在java生成的代码中,每个原始服务应该有2个服务。我们只希望最终java生成的代码具有2个服务,解析器可能会/可能不会更新原始服务。原型文件。
当前protoc是否可以进行这种定制?我们可以扩展插件并编写我们的插件吗-
我不清楚你的问题。
修改原始文件是gRPC的基本要求。
上的Java教程https://grpc.io包括向服务添加方法的示例。部分原因是,添加|删除|更新方法|消息|字段是常见的行为。
注意:为了澄清术语,在您的示例中,您建议向现有服务(定义)添加一个方法。如果您认为proto定义了一个API,那么这代表了一个不间断的更改。有关良好的概述,请参阅gRPC服务版本控制。现有客户将继续工作(他们只知道SayHello),而新客户也会知道SayHelloStreaming。
我正在编写一个自定义代码生成器,其中每个主数据表都有自己的java枚举。我使用JOOQ配置中的设置将表的每次使用映射到枚举,这很好。我正在努力删除不必要的生成类,如POJO、DAO和Records,并提出了2个选项。 从代码生成中排除表 使用
问题内容: 我正在寻找一种基于类中定义的字段为现有Java源代码文件中的新方法自动生成源代码的方法。 本质上,我希望执行以下步骤: 读取并解析 遍历源代码中定义的所有字段 添加源代码方法 保存(理想情况下,保留现有代码的格式) 哪些工具和技术最适合完成此任务? 编辑 我不想在运行时生成代码;我想扩充现有的Java 源代码 问题答案: 用自动生成的代码修改相同的Java源文件是维护的噩梦。考虑生成一
注: 内容来自官网资料 Java Generated Code 这个页面准确描述 protocol buffer 编译器为任何给定协议定义生成的java代码。proto2和proto3生成的代码之间的任何不同都将被高亮 - 注意在这份文档中描述的是这些生成代码的不同,而不是基本的消息类/接口,后者在两个版本中是相同的。在阅读这份文档之前你应该先阅读 proto2语言指南 和/或 proto3语言指
我有一个有许多表的数据库。我想开始使用jOOQ为我的应用程序。但是我不希望JOOQ为所有表生成代码,但只为表的一小部分生成代码。我如何配置它?
我正在尝试从多个 WSDL 文件生成 Axis2 (v1.6.1) Web 服务客户端代码,以便我可以在单个项目中拥有多个 Web 服务客户端。我正在使用 Ant 通过代码生成任务生成源代码。 因此,我需要使用自定义命名空间来打包映射,以使每个 Web 服务客户端的代码与其他客户端的代码分开,以避免冲突。 下面是一个示例 WSDL 文件中的命名空间: 我已经设法将生成代码的主体放入适当的包中。我已
问题内容: 我专门在寻找JPA代码生成技术 首先,哪些项目可以生成符合JPA的代码?(例如HibernateTools) 其次,我还想自定义代码生成实用程序,因为它必须符合我们的企业标准。 如果没有,使用反射生成Java代码的所有可用框架有哪些?所以我可以从头开始写。 注意:我使用eclipse生成JPA代码,并反复对其进行重构以使其兼容。 问题答案: 我也很难理解这个问题,但我将尝试改写: 您在