gRPC 生成的文件没有 json 定义

gRPC generated file doesn't have json definition

我正在尝试从 proto 文件生成 Go 文件,但它在方法的输入定义中没有 json 定义。我应该自己添加 json 定义还是我的脚本有问题。谢谢,非常感谢您的帮助。

原型文件

message RateRequest {
    string Base = 1;
    string Destination = 2;
}

生成的文件

type RateRequest struct {
    state         protoimpl.MessageState
    sizeCache     protoimpl.SizeCache
    unknownFields protoimpl.UnknownFields

    //No json definition here
    Base        string `protobuf:"bytes,1,opt,name=Base,proto3" json:"Base,omitempty"`
    Destination string `protobuf:"bytes,2,opt,name=Destination,proto3" json:"Destination,omitempty"`
}

协议脚本

protoc --go_out=. --go_opt=paths=source_relative \
--go-grpc_out=. --go-grpc_opt=paths=source_relative \
protos/currency.proto

grpcurl

grpcurl --plaintext -d '{Base: "GBP", Destination: "USD"}' localhost:9092 Currency.GetRate
// Error invoking method "Currency.GetRate": error getting request data: message type RateRequest has no known field named base

由于错误是

error getting request data: message type RateRequest has no known field named base

json

json:"Base,omitempty"`

那看来是找错了字段,应该是

json:"base,omitempty"`