Skip to main content

Система валидации

Ziva выполняет проверку пользовательского ввода непосредственно в InputTask. Как только пользователь нажимает Enter, задача вызывает валидатор и, при необходимости, возвращает сообщение об ошибке прямо в интерфейс.

Базовое использование

Если email некорректен, пользователь увидит подсказку и сможет исправить значение без выхода из очереди.

Что такое валидатор

Валидатор — это значение с двумя методами:
Возвращаемая ошибка попадает в интерфейс, описание используется для пояснения требований. Вам не нужно импортировать интерфейс — достаточно объявить тип с такими методами.

Подключение встроенных валидаторов

Список всех доступных проверок смотрите в разделе Встроенные валидаторы.

Опциональные поля

Если значение может быть пустым:
Комбинируйте WithAllowEmpty(true) с валидатором, который корректно обрабатывает пустую строку (например, OptionalEmail()).

Кастомные валидаторы

Таким образом можно описывать любую бизнес-логику: от проверки контрольных сумм до валидации с внешними сервисами.

Несколько проверок подряд

Часто нужно объединять условия:
compositeValidator — удобная обёртка (см. пример в разделе встроенных валидаторов). Можно написать свою, чтобы красиво объединять сообщения об ошибках.

Обработка результата после очереди

Даже если поле прошло валидацию, дополнительно проверяйте его после queue.Run() — особенно если требуется обращение к внешним сервисам или БД.

Лучшие практики

  • Формулируйте сообщения об ошибке так, чтобы пользователь понимал, как исправить ввод.
  • Для сложных правил описывайте требования через Description() — Ziva покажет их как подсказку.
  • Комбинируйте InputTask с FuncTask, если нужно выполнить длительную проверку (например, запрос к API) и показать подробный результат.
  • Учитывайте локаль: если используете числа, не забудьте обрезать пробелы и заменить запятые на точки (в случае необходимости — сделайте собственный валидатор).
Подробнее о создании собственных валидаторов — в разделе Кастомные валидаторы.