私は gRPC API を実装しており、応答として JSON 本文データをそのまま追加したいと考えていました。
だから私は試しました:
type Message struct {
Subject string `json:"subject"`
Body interface{} `json:"body"`
}
proto3
message Message {
string subject = 1;
string body = 2;
}
API コード:
en, err := client.Request.Get(req.Name)
if err != nil {
return nil, status.Error(codes.InvalidArgument, err.Error())
}
data, _ := json.Marshal(en.Body)
return &response.Message{
Subject: en.Subject,
Body: string(data),
}, nil
これを追加した後、gRPC API 応答を取得します。
{
"subject": "dev",
"body": "{\"name\":\"environment\",\"description\":\"The default environment\"}",
}
問題は、本文の JSON キー値が動的であることです。次のような応答を得る方法はありますか
{
"subject": "dev",
"body": {"name":"environment","description":"The default environment"},
}