无法从udemy课程中找出缺少的protoc命令

时间:2018-08-09 06:40:08

标签: go protocol-buffers go-micro

问题:

上个星期左右,我一直在进行有关Udemy的Golang微服务课程的编码,遇到了问题。

基本上,讲师通过编写.proto文件向我们介绍了Go-Micro和RPC。现在,我对GRPC有一些经验,但是对Go-Micro没有任何经验。问题在于讲师没有显示实际的protoc命令和最终的标志,而只是显示了它。我以为这是一条微不足道的命令,但是运行protoc greeter.proto go_out=.之后,我缺少了 client 片段。

预期:

pb.go文件的外观与the instructor's相同,在pb.go文件中包含客户端和服务器摘要。

实际:

缺少客户片段。

命令运行:

protoc greeter.proto go_out=.

代码:

.proto文件:

syntax = "proto3";

service Greeter { 
    rpc Hello(HelloRequest) returns (HelloResponse) {}
}

message HelloRequest {
    string name = 1;
}

message HelloResponse {
    string greeting = 2;
}

2 个答案:

答案 0 :(得分:0)

我使用以下命令:

protoc --proto_path=$GOPATH/src:. --micro_out=. --go_out=plugins=grpc:. *.proto 

从原始文件所在的目录开始。它生成与客户端代码一样好的服务。我在go-micro github存储库和go-micro网站上的许多示例中找到了此命令。

这是用于grpc的,但是这个主意还可以。

答案 1 :(得分:0)

希望这会有所帮助:

第一个用于生成原始文件,第二个用于反向代理

在此filename.proto中:-filename是您的文件名

# Generate proto
protoc -I/usr/local/include -I.  -I$GOPATH/src -I$GOPATH/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis --go_out=google/api/annotations.proto=github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis/google/api,plugins=grpc:. filename.proto

#Reverse Proxy For REST
protoc -I/usr/local/include -I. -I$GOPATH/src -I$GOPATH/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis --grpc-gateway_out=logtostderr=true:. filename.proto