micro_service/demo1/proto/user.proto
2024-09-24 16:56:54 +08:00

60 行
1.4 KiB
Protocol Buffer

syntax = "proto3";
package proto;
// 定义 Go 包名为 demo1, 生成的 Go 代码包名为 demo1
option go_package = "demo1/proto;proto";
import "google/protobuf/empty.proto";
import "google/protobuf/any.proto";
enum Sex {
Male = 0;
Female = 1;
Unknown = 2;
}
message Code {
string code = 1;
}
// 定义 LoginRequest 消息, 包含 username, password 两个字段
message LoginRequest {
string username = 1;
string password = 2;
google.protobuf.Any other = 3;
}
// 定义 RegisterRequest 消息, 包含 username, password, email, mobile 四个字段
message RegisterRequest {
string username = 1;
string password = 2;
string email = 3;
string mobile = 4;
Sex sex = 5;
repeated string hobbies = 6;
// 以下字段为预留字段, 不参与序列化和反序列化
reserved "city", "money";
}
// 定义 Response 消息, 包含 code, msg, data 三个字段
// 其中 data 字段使用 oneof 关键字, 表示 data 字段只能有一个字段被赋值
message Response {
int32 code = 1;
string msg = 2;
oneof data {
string token = 3;
string message = 4;
}
map<string, string> info = 5;
}
// 定义 User 服务
service User {
// 登录服务
rpc Login(LoginRequest) returns (Response);
// 注册服务
rpc Register(RegisterRequest) returns (Response);
// 获取用户信息服务
rpc GetUserInfo(google.protobuf.Empty) returns (Response);
}