我有具有以下功能的 GRPC 服务:
rpc StreamMessages(StreamMessagesRequest) returns (stream google.protobuf.StringValue) {
option (google.api.http) = {
post: "/messages:stream"body: "*"
};
}
背后有grpc-gateway 。
一旦我收集了 3 个字符串:“msg1”、“msg2”、“msg3” - 将每个字符串包装为 com.google.protobuf.wrappers.StringValue 并作为流返回。在 GRPC 方面一切正常,但是当我尝试通过网关执行 REST 请求时,问题发生了:
根据文档,google.protobuf.StringValue 的 Json 表示只是 JsonString,因此预期的流式传输结果是:
"msg1"
"msg2"
"msg3"
但它会返回意外的格式:
{"result":"msg1"}
{"result":"msg2"}
{"result":"msg3"}
问题:如何使网关返回预期?