登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-04 19:03:35 471浏览 收藏

小伙伴们有没有觉得学习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.protobufStringValue 字段:

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 字段的消息吗?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>