如何在客户端建立一个数据类型为map<String, Object>的消息对象?
How to build a message object with map<String, Object> of data type in client?
我想创建一个带有请求参数消息的 rpc
地图数据类型。
这是我的原型文件。
syntax = "proto3";
package vat;
service VatRecognizer {
rpc recognizeRequest(Request) returns (Response) {}
}
message Request {
string method = 1;
map <string, ApiParams> inputParams = 2;
}
message ApiParams {
repeated ParamsList params = 1;
}
message ParamsList {
string key = 1;
string value = 2;
}
message Response {
google.protobuf.Timestamp timestamp = 1;
map <string, string> result = 2;
}
ParamsList paramsList = ParamsList.newBuilder().setKey("key").setValue("xyz").build();
ApiParams apiParams = ApiParams.newBuilder().addParams(paramsList).build();
Request request = Request.newBuilder().setField(FileDescriptor, object value). build();
如何设置 Request.newBuilder().setField(FileDescriptor, object value)?这里没有拍地图
对于protobuf map类型,protobuf生成代码提供了两种方法;一个用于键值对,另一个用于 java 键值对映射。
Request.newBuilder()
// Adding one key value pair
.putResult("key", "value")
// Adding multiple key value pairs
.putAllResult(ImmutableMap.of("keyA", "valueA", "keyB", "valyeB"))
.build();
我想创建一个带有请求参数消息的 rpc 地图数据类型。
这是我的原型文件。
syntax = "proto3";
package vat;
service VatRecognizer {
rpc recognizeRequest(Request) returns (Response) {}
}
message Request {
string method = 1;
map <string, ApiParams> inputParams = 2;
}
message ApiParams {
repeated ParamsList params = 1;
}
message ParamsList {
string key = 1;
string value = 2;
}
message Response {
google.protobuf.Timestamp timestamp = 1;
map <string, string> result = 2;
}
ParamsList paramsList = ParamsList.newBuilder().setKey("key").setValue("xyz").build();
ApiParams apiParams = ApiParams.newBuilder().addParams(paramsList).build();
Request request = Request.newBuilder().setField(FileDescriptor, object value). build();
如何设置 Request.newBuilder().setField(FileDescriptor, object value)?这里没有拍地图
对于protobuf map类型,protobuf生成代码提供了两种方法;一个用于键值对,另一个用于 java 键值对映射。
Request.newBuilder()
// Adding one key value pair
.putResult("key", "value")
// Adding multiple key value pairs
.putAllResult(ImmutableMap.of("keyA", "valueA", "keyB", "valyeB"))
.build();