такими данными:
{
"token": "11111111111111111111111111111111",
"users": [{
"name": "Михайленко Денис",
"phone": "0980000000"
}]
}
Все это парсится в структуру, в которой тэгом обозначен паттерн, которому должно соответствовать поле:
type UsersUpload struct {
SessionToken string `json:"token" pattern:"^[a-zA-Z0-9]{32}$"`
Users []struct {
Name string `json:"name" pattern:"^[\\p{L}'-]+\\s[\\p{L}'-]+\\s[\\p{L}'-]+$"`
Phone string `json:"phone" pattern:"^[0-9]{10}$"`
} `json:"users"`
}
Каждое поле должно быть провалидировано.
Сейчас у меня есть самописный валидатор, но я чувствую что он написан ужасно. Что посоветуте?
используй типы с кастомной реализацией JsonUnmarshal/Marshal
Я использовал одно время вот то, если у вас только регулярки, то подойдёт https://github.com/go-validator/validator Можно ещё по-выбирать отсюда: https://github.com/avelino/awesome-go#validation
Обсуждают сегодня