+ 收藏我们

网站模板

网站模板搜索
404模板 营销型模板 外贸网站模板 单页模板 双语模板 标签大全
电话:18630701785
首页 > 站长学院 > gRPC 方法可以返回包含字符串或 null 字段的消息吗? >

gRPC 方法可以返回包含字符串或 null 字段的消息吗?

时间:2024-04-09 09:48:20

小伙伴们有没有觉得学习golang很有意思?有意思就对了!今天就给大家带来《grpc 方法可以返回包含字符串或 null 字段的消息吗?》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

问题内容
我正在设计一个用 Go 编写的 grpc 服务。

位于 grpc 服务前面的是 envoy,它将传入的 Http 请求转换为 grpc,并将 grpc 响应转换为 JSON。

此应用程序的要求是有一个返回以下 json 对象的端点:

{
    my_id: "aaa"
}
我可以在 go 中非常简单地模拟这个响应,如下所示:

// a myresponse object.
message myresponse {
  // contents is a list of contents.
  string my_id = 1;
}
但我的要求是有时 my_id 可能为空。在这种情况下,我想返回以下 json:

{
    my_id: null
}

是否可以修改 myresponse,以便 my_id 可以是返回的 json 对象中的字符串或 null?如果是这样,怎么办?如果不是的话,这不是grpc设计上的一个很大的差距吗?


解决方案

我建议您使用包 google.protobuf 的 StringValue 字段:

stringvalue 字符串的包装消息。

stringvalue 的 json 表示形式是 json 字符串。

因此,在您的原型文件中,您应该导入:

import "google/protobuf/wrappers.proto";
然后使用示例:

google.protobuf.StringValue name = 2;
要处理这些值,您可以检查 wrappers.stringvalue GitHub.com/golang/protobuf/ptypes/wrappers 包的类型和 google.golang.org/protobuf/types/known/wrapperspb 存储库的帮助程序。

好了,本文到此结束,带大家了解了《gRPC 方法可以返回包含字符串或 null 字段的消息吗?》,希望本文对你有所帮助!

有问题可以加入网站技术QQ群一起交流学习

本站会员学习、解决问题QQ群(691961965)

客服微信号:lpf010888

Title