Files
sponge/api/serverNameExample/v1/userExample.proto
2022-10-31 23:40:40 +08:00

190 lines
5.6 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// todo generate the protobuf code here
// delete the templates code start
syntax = "proto3";
package api.serverNameExample.v1;
import "validate/validate.proto";
import "api/types/types.proto";
import "google/api/annotations.proto";
import "protoc-gen-openapiv2/options/annotations.proto";
import "tagger/tagger.proto";
option go_package = "github.com/zhufuyi/sponge/api/serverNameExample/v1;v1";
// 生成*.swagger.json文档的默认设置
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = {
host: "localhost:8080"
base_path: ""
info: {
title: "serverNameExample api docs";
version: "v0.0.0";
};
schemes: HTTP;
schemes: HTTPS;
consumes: "application/json";
produces: "application/json";
};
service userExampleService {
rpc Create(CreateUserExampleRequest) returns (CreateUserExampleReply) {
option (google.api.http) = {
post: "/api/v1/userExample"
body: "*"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
summary: "创建userExample",
description: "提交信息创建userExample",
tags: "userExample",
};
}
rpc DeleteByID(DeleteUserExampleByIDRequest) returns (DeleteUserExampleByIDReply) {
option (google.api.http) = {
delete: "/api/v1/userExample/{id}"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
summary: "删除userExample",
description: "根据id删除userExample",
tags: "userExample",
};
}
rpc UpdateByID(UpdateUserExampleByIDRequest) returns (UpdateUserExampleByIDReply) {
option (google.api.http) = {
put: "/api/v1/userExample/{id}"
body: "*"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
summary: "更新userExample信息",
description: "根据id更新userExample信息",
tags: "userExample",
};
}
rpc GetByID(GetUserExampleByIDRequest) returns (GetUserExampleByIDReply) {
option (google.api.http) = {
get: "/api/v1/userExample/{id}"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
summary: "获取userExample详情",
description: "根据id获取userExample详情",
tags: "userExample",
};
}
rpc ListByIDs(ListUserExampleByIDsRequest) returns (ListUserExampleByIDsReply) {
option (google.api.http) = {
post: "/api/v1/userExamples/ids"
body: "*"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
summary: "根据多个id获取userExample列表",
description: "使用post请求根据多个id获取userExample列表",
tags: "userExample",
};
}
rpc List(ListUserExampleRequest) returns (ListUserExampleReply) {
option (google.api.http) = {
post: "/api/v1/userExamples"
body: "*"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
summary: "获取userExample列表",
description: "使用post请求获取userExample列表",
tags: "userExample",
};
}
}
enum GenderType {
UNKNOWN = 0;
MALE = 1;
FEMALE = 2;
};
// 如果使用grpc gateway建议例外添加target请求时可以自动校验
// 例如 string email = 2 [(tagger.tags) = "binding:\"email\"" ];
message CreateUserExampleRequest {
string name = 1 [(validate.rules).string.min_len = 2]; // 名称
string email = 2 [(validate.rules).string.email = true]; // 邮件
string password = 3 [(validate.rules).string.min_len = 10]; // 密码
string phone=4 [(validate.rules).string = {pattern: "^1[3456789]\\d{9}$"}]; // 手机号码
string avatar=5 [(validate.rules).string.uri = true]; // 头像
int32 age=6 [(validate.rules).int32 = {gte:0, lte: 120}]; // 年龄
GenderType gender=7 [(validate.rules).enum.defined_only = true]; // 性别0:未知1:男2:女
}
message CreateUserExampleReply {
uint64 id = 1 [(validate.rules).uint64.gte = 1];
}
message DeleteUserExampleByIDRequest {
uint64 id = 1 [(validate.rules).uint64.gte = 1, (tagger.tags) = "uri:\"id\"" ];
}
message DeleteUserExampleByIDReply {
}
message UpdateUserExampleByIDRequest {
uint64 id = 1 [(validate.rules).uint64.gte = 1 , (tagger.tags) = "uri:\"id\"" ];
string name = 2; // 名称
string email = 3; // 邮件
string password = 4; // 密码
string phone=5; // 手机号码
string avatar=6; // 头像
int32 age=7; // 年龄
GenderType gender=8; // 性别1:男2:女
int32 status=9; // 账号状态
int64 login_at=10; // 登录时间戳
}
message UpdateUserExampleByIDReply {
}
message UserExample {
uint64 id = 1;
string name = 2; // 名称
string email = 3; // 邮件
string phone=4; // 手机号码
string avatar=5; // 头像
int32 age=6; // 年龄
GenderType gender=7; // 性别1:男2:女
int32 status=8; // 账号状态
int64 login_at=9; // 登录时间戳
int64 created_at=10; // 创建时间
int64 updated_at=11; // 更新时间
}
message GetUserExampleByIDRequest {
uint64 id = 1 [(validate.rules).uint64.gte = 1, (tagger.tags) = "uri:\"id\"" ];
}
message GetUserExampleByIDReply {
UserExample userExample = 1;
}
message ListUserExampleByIDsRequest {
repeated uint64 ids = 1;
}
message ListUserExampleByIDsReply {
repeated UserExample userExamples = 1;
}
message ListUserExampleRequest {
types.Params params = 1 [(validate.rules).message.required = true];
}
message ListUserExampleReply {
int64 total =1;
repeated UserExample userExamples = 2;
}
// delete the templates code end