github.com/Go-To-Byte/DouSheng/user_center@v0.0.0-20230524130918-ad531c1a3f6a/apps/user/pb/user.proto (about) 1 syntax = "proto3"; 2 3 package dousheng.user; 4 option go_package = "github.com/Go-To-Byte/DouSheng/user_center/apps/user"; 5 6 7 // 定义 user 模块的接口 8 service Service { 9 // 用户注册 10 rpc Register(LoginAndRegisterRequest) returns(TokenResponse); 11 // 用户登录 12 rpc Login(LoginAndRegisterRequest) returns(TokenResponse); 13 // 获取用户信息 14 rpc UserInfo(UserInfoRequest) returns(UserInfoResponse); 15 // 获取用户信息 map[userId] = User 16 rpc UserMap(UserMapRequest) returns(UserMapResponse); 17 } 18 19 20 // 用户注册 & 登录 的接口请求 model 21 message LoginAndRegisterRequest { 22 // 用户名【注册的话,最长32个字符】 23 // @gotags: json:"username" form:"username" binding:"required,max=32" validate:"required,max=32" 24 string username = 1; 25 // 密码 26 // @gotags: json:"password" form:"password" binding:"required,max=32" validate:"required,max=32" 27 string password = 2; 28 } 29 30 // 用户注册 & 登录 的接口响应 model 31 message TokenResponse { 32 // 用户ID 33 // @gotags: json:"user_id" 34 int64 user_id = 3; 35 // 用户鉴权Token 36 // @gotags: json:"token" 37 string token = 4; 38 } 39 40 // 获取用户信息 的接口请求 model 41 message UserInfoRequest { 42 // 用户ID 43 // @gotags: json:"user_id" form:"user_id" validate:"required" binding:"required" 44 int64 user_id = 1; 45 // 用户鉴权Token [注:这里用 validate,是因为内部方法也必须要用到 Token,并不是所有 token 都 validate] 46 // @gotags: json:"token" form:"token" binding:"required" validate:"required" 47 string token = 2; 48 } 49 50 // 获取用户信息 的接口响应 model 51 message UserInfoResponse { 52 // 用户信息 53 // @gotags: json:"user" 54 User user = 3; 55 } 56 57 // 调用用户信息 时返回的User 58 message User { 59 // @gotags: json:"id" 60 int64 id = 1; // 用户id 61 // @gotags: json:"name" 62 string name = 2; // 用户名称 63 // @gotags: json:"follow_count" 64 optional int64 follow_count = 3; // 关注总数 65 // @gotags: json:"follower_count" 66 optional int64 follower_count = 4; // 粉丝总数 67 // @gotags: json:"is_follow" 68 bool is_follow = 5; // true-已关注,false-未关 69 // @gotags: json:"avatar" 70 optional string avatar = 6; //用户头像 71 // @gotags: json:"background_image" 72 optional string background_image = 7; //用户个人页顶部大图 73 // @gotags: json:"signature" 74 optional string signature = 8; //个人简介 75 // @gotags: json:"total_favorited" 76 optional int64 total_favorited = 9; //获赞数量 77 // @gotags: json:"work_count" 78 optional int64 work_count = 10; //作品数 79 // @gotags: json:"favorite_count" 80 optional int64 favorite_count = 11; //点赞数量 81 } 82 83 // 与数据库对应的 PO 对象 84 message UserPo { 85 // 用户ID 86 // @gotags: json:"id" gorm:"id" 87 int64 id = 1; 88 // 用户名称 89 // @gotags: json:"username" gorm:"username" 90 string username = 2; 91 // 用户名称 92 // @gotags: json:"password" gorm:"password" 93 string password = 3; 94 } 95 96 // 用户IDs 97 message UserMapRequest { 98 // 用户ID 列表 99 // @gotags: json:"user_ids" 100 repeated int64 user_ids = 1; 101 // 用户鉴权Token [注:这里用 validate,是因为内部方法也必须要用到 Token,并不是所有 token 都 validate] 102 // @gotags: json:"token" validate:"required" 103 string token = 2; 104 } 105 106 // 用户列表:map[userId] = User 107 message UserMapResponse { 108 // 用户列表:map[userId] = User 109 // @gotags: json:"user_map" 110 map<int64, User> user_map = 1; 111 }