gRPC in ASP.NET Core 3.x -- Protocol Buffer(2)Go语言的例子(上)

上一篇文章(大约半年前写的):https://www.cnblogs.com/cgzl/p/11246324.html

建立Go项目

在GOPATH的src下面建立一个文件夹 protobuf-go,然后在里面执行命令
go mod init github.com/solenovex/protobuf-go

这个命令是用来初始化go module的。
命令执行后在该目录生成go.mod文件,其内容如下:
其实直接执行go mod init 也行,默认会取当前文件夹的名字作为项目名。
 
如果你使用的是Goland,那么需要启用Go modules集成:
 
然后我们需要安装Protocol buffer的 Go 支持库:
go get -u github.com/golang/protobuf/protoc-gen-go

安装好之后:
下面会出现require github.com/…. 后边显示indirect,说明我们的代码还没有对其进行直接引用

 
建立main.go,代码如下:
 
然后执行命令 go run main.go 如果输出 "hello world!" 就说明一切正常。

 

建立proto

在项目下建立src/first文件夹,在里面建立person.proto文件:
 
下面需要通过这个proto文件,生成go的代码,命令行执行:
protoc --proto_path src/ --go_out=src/ src/first/person.proto
 
执行完之后,在src/first文件夹下会生成一个文件person.pb.go: