Написал небольшой плагин для Mojolicious -
Mojolicious::Plugin::ValidateTiny. По сути - это обертка над
Validate::Tiny с дополнительными удобными плюшками.
Для валидации входящий параметров мы просто используем хелпер:
$self->do_validation($validate_rules);
$validate_rules - это описание проверок в формате Validate::Tiny.
По-умолчанию, включена опция "autofields", которая позволяет использовать сокращенный вариант правил проверки.
И вместо:
{
fields => ['user', 'pass'],
checks => [user => is_required(), pass => is_required()]
}
можно писать:
[ user => is_required(), pass => is_required() ]
и fields автоматически заполнятся исходя из описания проверок.
Также очень полезна опции "explicit", которая обязывает нас описать явно правила валидации для каждого поля. По-умолчанию, выключена, но в своих проекта я всегда ее включаю.
Кроме хелпера "validator_error", есть еще хелпер "validator_any_error".
my $errors = $self->validator_error; # hashref with errors
my $pass_error = $self->validator_error('pass'); # password error text
my $any_error = $self->validator_any_error; # any error