Protocol Buffers,是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。grpc框架将通过此协议进行通讯。
protoc
程序去 https://github.com/protocolbuffers/protobuf/releases 下载对应的系统版本
下载之后解压,并将目录添加至环境变量中
检测是否成功,cmd输入
protoc --version // 输出 libprotoc 3.21.1
protoc-gen-go
go install github.com/golang/protobuf/protoc-gen-go@latest
检测是否成功,cmd输入
protoc-gen-go // 没有任何输出则成功
名为:protos\route_guide.proto
syntax = "proto3";// 指定版本
option go_package="./routeGuide;route_guide"; // .proto 所在路径,分号后代表生成go文件后的包名称(可不写)
service RouteGuide{
// 获取用户信息
rpc GetUserInfo(GetUserInfoParam) returns (UserInfo) {}
}
// message 一种消息类型
message GetUserInfoParam{
int32 uid=1;
// string name=2;
// int32 age=3;
UserInfo UserInfo=4;// 支持嵌套
PhoneType type=5;
repeated string hobby=6;// 可重复,生成为切片格式
}
message UserInfo{
string name=1;
int32 age=2;
}
// 枚举类型
enum PhoneType{
MOBILE=0;// 默认
HOME=1;
WORK=2;
}
// 参数1:在某路径生成文件
// 参数2:需要编译的文件
protoc --go_out=./ *.proto
正在学习Go语言的PHP程序员。