假设我有一个像这样的 protobuf 消息
message Person {
uint32 age = 1;
}
有没有办法将字段
age
限制在一定范围内?就像[0; 120]
。现在我只是以编程方式进行这些检查
if p.Age < 0 || p.Age > 120 {
return err
}
但是一次又一次地编写相同的错误消息是很乏味的(实际上我有一个更大的消息)。在使用此 protobuf 定义的所有项目中进行相同的约束验证也很棒 - 现在我们需要在开发人员之间非正式地协调它。
message Person {
uint32 age = 1; [
(buf.validate.field).uint32.gt = 0,
(buf.validate.field).uint32.lt = 120,
];
}
您需要
import "buf/validate/validate.proto"