Кастомные валидаторы
Если стандартных проверок недостаточно, создайте собственный валидатор. Достаточно объявить тип с методамиValidate(string) error
и Description() string
.
Пошаговый пример
Допустим, нужно проверить SKU видаCAT-000123
:
Сообщения об ошибках
Validate
— короткое сообщение о проблеме (например, «Нужен чётный номер»).Description
— общие требования. Ziva показывает его под полем ввода, чтобы пользователь сразу видел формат.
Повторное использование
Сложные правила можно собрать из нескольких валидаторов:Валидация с внешними сервисами
Если проверка требует обращения к API или базе данных, используйтеFuncTask
сразу после InputTask
:
Советы
- Старайтесь писать позитивные подсказки: «Используйте формат AAA-000000», а не «Нельзя вводить …».
- Если правило длинное, выводите краткое сообщение в
Validate
, а подробности — вDescription
. - Используйте
WithAllowEmpty(true)
вместе с кастомными валидаторами, если поле не обязательно. - Покрывайте критичные правила юнит-тестами — валидатор это обычный Go-код.