Open10

protovalidate 使ってみる

135yshr135yshr

proto ファイルにインポート追加する

syntax = "proto3";

package my.package;

import "buf/validate/validate.proto";
135yshr135yshr

buf.yaml に依存関係追加する

buf.yaml
version: v1
# <snip>
deps:
  - buf.build/bufbuild/protovalidate
# <snip>
135yshr135yshr

validation を定義する

message User {
  string name = 1 [(buf.validate.field).string.min_len = 1, (buf.validate.field).string.max_len = 100];
  string email = 2 [(buf.validate.field).string.email = true];
  bool verified = 3 [(buf.validate.field).bool.const = true];
  bytes password = 4 [(buf.validate.field).bytes.pattern = "^[a-zA-Z0-9]*$"];
}
135yshr135yshr

buf generate コマンドで proto ファイルをもとにコードを生成してくれる