You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kratos/examples/validate/api/example.proto

43 lines
1.3 KiB

syntax = "proto3";
package api.example;
option go_package = "github.com/go-kratos/kratos/examples/validate/api/v1;v1";
option java_multiple_files = true;
option java_package = "validate.api.v1";
import "google/api/annotations.proto";
// the validate rules:
// https://github.com/envoyproxy/protoc-gen-validate
import "validate/validate.proto";
service ExampleService {
rpc TestValidate (Request) returns (Reply) {
option (google.api.http) = {
post: "/v1/validate"
body: "*"
};
}
}
message Reply {
string message = 1;
}
message Request {
int64 id = 1 [(validate.rules).int64 = {gt: 0}];
int32 age = 2 [(validate.rules).int32 = {gt:0, lt: 120}];
uint32 code = 3 [(validate.rules).uint32 = {in: [1,2,3]}];
float score = 4 [(validate.rules).float = {not_in: [0, 99.99]}];
bool state = 5 [(validate.rules).bool.const = true];
string path = 6 [(validate.rules).string.const = "/hello"];
string phone = 7 [(validate.rules).string.len = 11];
string explain = 8 [(validate.rules).string.min_len = 3];
string name = 9 [(validate.rules).string = {min_len: 1, max_len: 10}];
string card = 10 [(validate.rules).string.pattern = "(?i)^[0-9a-f]+$"];
Info info = 11 [(validate.rules).message.required = true];
}
message Info {
string address = 1;
}