* время. Время не является прото. Сообщение: отсутствует метод ProtoMessage - PullRequest
0 голосов
/ 11 декабря 2019

У меня есть сервер grpc. grpc работает нормально, но есть ошибка, препятствующая ответу от http-сервера.

это a.proto файл

syntax = "proto3";
// option go_package here

import "google/api/annotations.proto";
import "protoc-gen-swagger/options/annotations.proto";
import "google/protobuf/timestamp.proto";
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
import "github.com/mwitkow/go-proto-validators/validator.proto";

option (grpc.gateway.protoc_gen_swagger.options.openapiv2_swagger) = {
    info: {
        version: "0.0.1";
    };

// Enable custom Marshal method.
option (gogoproto.marshaler_all) = true;
// Enable custom Unmarshal method.
option (gogoproto.unmarshaler_all) = true;
// Enable custom Size method (Required by Marshal and Unmarshal).
option (gogoproto.sizer_all) = true;
// Enable registration with golang/protobuf for the grpc-gateway.
option (gogoproto.goproto_registration) = true;
// Enable generation of XXX_MessageName methods for grpc-go/status.
option (gogoproto.messagename_all) = true;
option (gogoproto.gogoproto_import) = true;

service MyService {
    rpc GetByUrl (GetRequest) returns (GetResponse) {
        option (google.api.http) = {
            get: "/v0/me/{url}"
        };
    }
}

message GetResponse {
    uint32 id = 1 [
                  (gogoproto.customname) = "Id", (validator.field) = {
            int_gt: 0
            human_error: "id must be a positive integer"
        }];

    string url = 2 [(validator.field) = {
            string_not_empty: true
        }];

    google.protobuf.Timestamp created_at = 3 [(gogoproto.stdtime) = true];
    google.protobuf.Timestamp updated_at = 4 [(gogoproto.stdtime) = true];
}

message GetRequest {
    string url = 1 [(validator.field) = {
            string_not_empty: true
        }];
}

Ответ grpc:

id:1 url:"new.com" created_at:<seconds:1576053167 > updated_at:<seconds:1576053167 >

Но http-сервер выдает ошибку:

panic serving 127.0.0.1:54172: interface conversion: *time.Time is not proto.Message: missing method ProtoMessage

Я уже упоминал https://github.com/gogo/protobuf/issues/212

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...