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文件放在同一个文件夹下 否则你会哭的!经验之谈不要问为什么?

grpc套路proto文件

有了这么一个文件 我们该如何生成想要的对应语言的代码呢?
进入到User.proto文件所在的路径,然后执行命令:

protoc --go_out=plugins=grpc:. User.proto

protoc工具如何配置环境变量前边说过了哈!
这样就会生成对应的user.pb.go文件!
这个user.pb.go文件里面是大有讲究的撒 proto文件里面注释的你都可以去user.pb.go文件里面去查看是否都有实现了!自己去看吧!

本作品采用《CC 协议》,转载必须注明作者和本文链接
胡军
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!