mirror of
https://github.com/zhufuyi/sponge.git
synced 2025-10-05 16:57:07 +08:00
258 lines
7.4 KiB
Protocol Buffer
258 lines
7.4 KiB
Protocol Buffer
// 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";
|
|
|
|
// Default settings for generating *.swagger.json documents
|
|
// NOTE: because json does not support 64 bits, the int64 and uint64 types under *.swagger.json are automatically converted to string types
|
|
// Reference https://github.com/grpc-ecosystem/grpc-gateway/blob/db7fbefff7c04877cdb32e16d4a248a024428207/examples/internal/proto/examplepb/a_bit_of_everything.proto
|
|
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = {
|
|
host: "localhost:8080"
|
|
base_path: ""
|
|
info: {
|
|
title: "serverNameExample api docs";
|
|
version: "2.0";
|
|
}
|
|
schemes: HTTP;
|
|
schemes: HTTPS;
|
|
consumes: "application/json";
|
|
produces: "application/json";
|
|
security_definitions: {
|
|
security: {
|
|
key: "BearerAuth";
|
|
value: {
|
|
type: TYPE_API_KEY;
|
|
in: IN_HEADER;
|
|
name: "Authorization";
|
|
description: "Input a \"Bearer your-jwt-token\" to Value";
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
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: "create userExample",
|
|
description: "submit information to create 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: "delete userExample",
|
|
description: "delete userExample by id",
|
|
tags: "userExample",
|
|
//security: {
|
|
// security_requirement: {
|
|
// key: "BearerAuth";
|
|
// value: {}
|
|
// }
|
|
//}
|
|
};
|
|
}
|
|
|
|
rpc DeleteByIDs(DeleteUserExampleByIDsRequest) returns (DeleteUserExampleByIDsReply) {
|
|
option (google.api.http) = {
|
|
post: "/api/v1/userExample/delete/ids"
|
|
body: "*"
|
|
};
|
|
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
|
summary: "delete userExamples",
|
|
description: "delete userExamples by batch id",
|
|
tags: "userExample",
|
|
//security: {
|
|
// security_requirement: {
|
|
// key: "BearerAuth";
|
|
// value: {}
|
|
// }
|
|
//}
|
|
};
|
|
}
|
|
|
|
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: "update userExample",
|
|
description: "update userExample by id",
|
|
tags: "userExample",
|
|
//security: {
|
|
// security_requirement: {
|
|
// key: "BearerAuth";
|
|
// value: {}
|
|
// }
|
|
//}
|
|
};
|
|
}
|
|
|
|
rpc GetByID(GetUserExampleByIDRequest) returns (GetUserExampleByIDReply) {
|
|
option (google.api.http) = {
|
|
get: "/api/v1/userExample/{id}"
|
|
};
|
|
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
|
summary: "get userExample detail",
|
|
description: "get userExample detail by id",
|
|
tags: "userExample",
|
|
//security: {
|
|
// security_requirement: {
|
|
// key: "BearerAuth";
|
|
// value: {}
|
|
// }
|
|
//}
|
|
};
|
|
}
|
|
|
|
rpc ListByIDs(ListUserExampleByIDsRequest) returns (ListUserExampleByIDsReply) {
|
|
option (google.api.http) = {
|
|
post: "/api/v1/userExample/list/ids"
|
|
body: "*"
|
|
};
|
|
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
|
summary: "list of userExamples by batch id",
|
|
description: "list of userExamples by by batch id",
|
|
tags: "userExample",
|
|
//security: {
|
|
// security_requirement: {
|
|
// key: "BearerAuth";
|
|
// value: {}
|
|
// }
|
|
//}
|
|
};
|
|
}
|
|
|
|
rpc List(ListUserExampleRequest) returns (ListUserExampleReply) {
|
|
option (google.api.http) = {
|
|
post: "/api/v1/userExample/list"
|
|
body: "*"
|
|
};
|
|
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
|
|
summary: "list of userExamples by query parameters",
|
|
description: "list of userExamples by paging and conditions",
|
|
tags: "userExample",
|
|
//security: {
|
|
// security_requirement: {
|
|
// key: "BearerAuth";
|
|
// value: {}
|
|
// }
|
|
//}
|
|
};
|
|
}
|
|
}
|
|
|
|
enum GenderType {
|
|
UNKNOWN = 0;
|
|
MALE = 1;
|
|
FEMALE = 2;
|
|
};
|
|
|
|
// todo fill in the validate rules https://github.com/envoyproxy/protoc-gen-validate#constraint-rules
|
|
|
|
message CreateUserExampleRequest {
|
|
string name = 1 [(validate.rules).string.min_len = 2]; // name
|
|
string email = 2 [(validate.rules).string.email = true]; // email
|
|
string password = 3 [(validate.rules).string.min_len = 10]; // password
|
|
string phone = 4 [(validate.rules).string = {pattern: "^1[3456789]\\d{9}$"}]; // phone number
|
|
string avatar = 5 [(validate.rules).string.uri = true]; // avatar
|
|
int32 age = 6 [(validate.rules).int32 = {gte:0, lte: 120}]; // age
|
|
GenderType gender = 7 [(validate.rules).enum.defined_only = true]; // gender, 1:Male, 2:Female, other values:unknown
|
|
}
|
|
|
|
message CreateUserExampleReply {
|
|
uint64 id = 1;
|
|
}
|
|
|
|
message DeleteUserExampleByIDRequest {
|
|
uint64 id = 1 [(validate.rules).uint64.gte = 1, (tagger.tags) = "uri:\"id\"" ];
|
|
}
|
|
|
|
message DeleteUserExampleByIDReply {
|
|
|
|
}
|
|
|
|
message DeleteUserExampleByIDsRequest {
|
|
repeated uint64 ids = 1;
|
|
}
|
|
|
|
message DeleteUserExampleByIDsReply {
|
|
|
|
}
|
|
|
|
message UpdateUserExampleByIDRequest {
|
|
uint64 id = 1 [(validate.rules).uint64.gte = 1 , (tagger.tags) = "uri:\"id\"" ];
|
|
string name = 2; // name
|
|
string email = 3; // email
|
|
string password = 4; // password
|
|
string phone = 5; // phone number
|
|
string avatar = 6; // avatar
|
|
int32 age = 7; // age
|
|
GenderType gender = 8; // gender, 1:Male, 2:Female, other values:unknown
|
|
int32 status = 9; // account status
|
|
int64 login_at = 10; // login timestamp
|
|
}
|
|
|
|
message UpdateUserExampleByIDReply {
|
|
|
|
}
|
|
|
|
message UserExample {
|
|
uint64 id = 1;
|
|
string name = 2; // name
|
|
string email = 3; // email
|
|
string phone = 4; // phone number
|
|
string avatar = 5; // avatar
|
|
int32 age = 6; // age
|
|
GenderType gender = 7; // gender, 1:Male, 2:Female, other values:unknown
|
|
int32 status = 8; // account status
|
|
int64 login_at = 9; // login timestamp
|
|
int64 created_at = 10; // creation time
|
|
int64 updated_at = 11; // update time
|
|
}
|
|
|
|
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
|