grpc套路(一)proto文件编写
grpc的建立也是有自己的套路的,今天我们就来写一写简单套路的实现
这一篇我们只讲proto
syntax="proto3"; //协议 proto2 和 proto3 syntax="porto3"必须位于文件的顶部
package pdfiles.user; // package 包名 生成的语言类放在什么包里面 这个package必须紧跟着syntax="proto3"
//定义service服务 会翻译为UserServiceClient 和 userServiceClient 和对外暴露的 NewUserServiceClient供客户端调用
//还会翻译为UserServiceServer接口(UserList方法在内 并且实现了UserList方法并且内部会去调用UserList方法) 和 对外暴露的RegisterUserServiceServer 供服务端调用
service UserService{
rpc UserList(RequestUser) returns (ResponseUser){};
}
//会翻译成RequestUser结构体 里面包含name string | mobile string 字段
message RequestUser{
string name = 1;
string mobile = 2;
}
//会翻译成ResponseUser结构体 里面包含 User []*User 字段
message ResponseUser{
repeated User user = 1;
}
//会翻译成User结构体 里面包含 name string | mobile string | age int64 字段
message User{
string name = 1;
string mobile = 2;
int64 age = 3;
}
目录结构很重要 不要把两个proto文件放在同一个文件夹下 否则你会哭的!经验之谈不要问为什么?
有了这么一个文件 我们该如何生成想要的对应语言的代码呢?
进入到User.proto文件所在的路径,然后执行命令:
protoc --go_out=plugins=grpc:. User.proto
protoc工具如何配置环境变量前边说过了哈!
这样就会生成对应的user.pb.go文件!
这个user.pb.go文件里面是大有讲究的撒 proto文件里面注释的你都可以去user.pb.go文件里面去查看是否都有实现了!自己去看吧!
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: