【发布时间】:2023-04-11 08:12:02
【问题描述】:
我正在设计一个用 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 对象中可以是字符串或空值?如果是这样,怎么做?如果不是,这在 gRPC 的设计上是不是一个很大的差距?
【问题讨论】:
标签: go protocol-buffers grpc envoyproxy grpc-go