Метка времени Protobuf не найдена - PullRequest
0 голосов
/ 08 мая 2019

Относительно новичок в GRPC и получение ошибки в моем прото-файле, которую я не могу понять.Я хотел бы отправить время в сообщении, используя "google.protobuf.Timestamp".Я не могу импортировать это.Что я делаю не так?

    syntax = "proto3";

    import "google/protobuf/timestamp.proto";

    service ProfileService {
        rpc ConstructProfileStructFromUser (ConstructProfileStructFromUserRequest) returns (ConstructProfileStructFromUserResponse);
    }

    message ConstructProfileStructFromUserRequest {
        string transactionID    = 1;
        string User         = 2;
    }

    message ConstructProfileStructFromUserResponse {
        string UID = 1;
        string ContactEmail = 2;
        google.protobuf.Timestamp DateOfBirth = 3;
    }

И в моей IDE, и в моем компиляторе (с помощью приведенной ниже команды) появляется ошибка

google/protobuf/timestamp.proto: File not found.
profile.proto: Import "google/protobuf/timestamp.proto" was not found or had errors.
profile.proto:21:5: "google.protobuf.Timestamp" is not defined.

Команда для запуска:

protoc -I profile/ profile/profile.proto --go_out=plugins=grpc:profile

Protoc - версия

libprotoc 3.0.0

1 Ответ

0 голосов
/ 08 мая 2019

Моя проблема была довольно простой ...

У меня не было локально загруженного файла timestamp.proto, и в результате он не смог его найти.

Я клонировал:

https://github.com/protocolbuffers/protobuf/tree/master/src/google/protobuf

И затем, когда я запускаю свой компилятор, я должен указать ему местоположение для поиска файлов timestamp.proto.

Для меня это было...

protoc -I profile/ -I MY_CLONED_REPO_LOCATION/protobuf/src profile/profile.proto --go_out=plugins=grpc:profile

Как только он узнает, где находится путь к источнику, он сможет найти его без проблем.

...