Golang - google/protobuf/Empty.proto : File not found

标签 go protocol-buffers grpc protoc

syntax = "proto3";

package model;

import "google/protobuf/Empty.proto";

message User {
    string id = 1;
    string name  = 2;
    string email = 3;
    string alamat = 4;
    string password = 5;
}

message UserList {
    repeated User list = 1;
}

message userId {
    string id = 1; 
}

message UserUpdate {
    string id = 1;
    User user = 2;
}

service Users {
    rpc getUserList(google.protobuf.Empty) returns (UserList) {}
    rpc getUserById(userId) returns (User) {}
    rpc inserUser(User) returns (google.protobuf.Empty) {}
    rpc updateUser(UserUpdate) returns (google.protobuf.Empty) {} 
    rpc deleteUser(userId) returns (google.protobuf.Empty) {}  
}

上面是我的原型(prototype)文件。我收到错误 google/protobuf/Empty.proto: 文件未找到。 当尝试编译上面的 proto 文件时。有人可以帮助我吗?

最佳答案

首先,正确的导入是import "google/protobuf/empty.proto";

第二,为了生成原型(prototype)文件,运行以下代码:

protoc --proto_path={proto_directory_address} --proto_path={proto_directory_name} --go-grpc_out={generated_directory_path} --go_out={generated_directory_path} {proto_directory_address}/{proto_file_name}.proto

关于Golang - google/protobuf/Empty.proto : File not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71733519/

相关文章:

string - GoLang 获取 byte slice 中第 N 行的字符串

python - 获取 protobuf 消息的父消息(在 python 中)

java - 为什么 ManagedChannelBuilder 没有用于与服务器建立 TLS 连接的 TLS 参数?

java - kotlin grpc.StreamObserver 删除到 rx.PublishSubject

load-balancing - 如何解决这个节点与 Envoy 的亲和性

go - gRPC 可以集成到 flutter-web 中吗?

go - 实现与接口(interface)不匹配

http - 在这种情况下,Go HTTP handler goroutine 是否会立即退出?

c++ - 无法与标准库链接

serialization - Protobuf 将序列化消息串联到一个文件中