乐趣区

关于go:go入门grpc第三章从-proto-文件自动生成go代码

更不便的在微信公众号阅读文章能够关注公众号:海生的 go 花园

一、装置 protoc 以及插件

在第二章,咱们介绍了,如何写一个.proto 文件。
当咱们有了一个.proto 文件,揭晓来,咱们就是应用 protoc 命令编译.proto 文件,生成对应 go 文件。

1.1 装置 protoc 命令

brew install protobuf

1.2 装置 protobuf 插件

1.2.1、装置 protoc-gen-go 插件,--go_out 选项

用来生成.pb.go 文件,用来解决 message 等失常的类型。

go install google.golang.org/protobuf/cmd/protoc-gen-go

1.2.2、装置 protoc-gen-go-grpc 插件,--go-grpc_opt 选项

用来解决 grpc 相干的程序。

google.golang.org/grpc/cmd/protoc-gen-go-grpc

二、应用 protoc 命令生成 go 代码

2.1 初始化 go 我的项目

首先咱们关上 grpc-demo1 目录(在第二章创立的),而后 go mod init。初始化这个 go 我的项目。

$ cd grpc-demo1
$ go mod init github/hisheng/grpc-demo1

此时查看咱们的目录, 执行 tree 命令。

➜  grpc-demo1 git:(master) $ tree
.
├── api
│   └── hello.proto
├── go.mod
└── go.sum

1 directory, 3 files

咱们的目录多了 go.mod 文件以及 go.sum。

2.2 应用 protoc 命令生成 go 代码

当初终于到了咱们生成理论 go 代码的时候了,让咱们在 grpc-demo1 执行如下命令。

protoc --go_out=. --go_opt=paths=source_relative \
       --go-grpc_out=. --go-grpc_opt=paths=source_relative \
       api/hello.proto

咱们终于执行了 protoc 命令了,此时咱们减少了两个参数选项。

--go_out      生成了 hello.pb.go 文件
--go-grpc_out 生成了 hello_grpc.pb.go 文件 

此时咱们再查看 grpc-demo1,执行 tree 命令

➜  grpc-demo1 git:(master) ✗ tree
.
├── api
│   ├── hello.pb.go
│   ├── hello.proto
│   └── hello_grpc.pb.go
├── go.mod
└── go.sum

1 directory, 5 files

能够看到刚生成的 hello.pb.go 和 hello_grpc.pb.go 两个 go 文件。

2.3 应用 go mod tidy 下载依赖库

咱们发现 hello.pb.go,以及 hello_grpc.pb.go 文件中,有一些 go 依赖没有下载。此时再下载一下。
在 grpc-demo1 目录执行

go mod tidy 

至此,咱们生成的 go 代码,就没有问题了。

退出移动版