https://github.com/algrvvv/validator
Легкий вспомогательный пакет, который проверяет значения в структуре на основе тегов.
https://github.com/algrvvv/validator
go go-package validator
Last synced: 2 months ago
JSON representation
Легкий вспомогательный пакет, который проверяет значения в структуре на основе тегов.
- Host: GitHub
- URL: https://github.com/algrvvv/validator
- Owner: algrvvv
- License: mit
- Created: 2024-07-12T13:09:41.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-09-30T08:44:05.000Z (8 months ago)
- Last Synced: 2025-01-21T04:12:55.796Z (4 months ago)
- Topics: go, go-package, validator
- Language: Go
- Homepage:
- Size: 17.6 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Validator - algrvvv
## Установка
```shell
$ go get github.com/algrvvv/validator
``````go
import "github.com/algrvvv/validator"
```## Использование
Список полей поддерживающихся на данный момент:
- required - обязательное поле
- email - поле должно быть формата email
- min=x - минимальная длина, где x длина
- max=x - максимальная длина, где x длина
- in:x-y-z - сравнение значения поля с x,y,z```go
// создаем струтуру с нужными полями
type mockUser struct {
Email string `validate:"required,email"`
Password string `validate:"required,min=8"`
}// nil, если ошибок валидации нет
// err, если есть ошибка валидации.
// Err будет содержать в себе текст ошибки
err := validator.Validate(mockUser{
Email: "[email protected]",
Password: "p4ssw0rd",
})```
### Использование своих сообщений об ошибке
```go
// Требуется создать структуру, которая имплементирует IMessage
type IMessages interface {
Required(field string) string
Min(field string, min int) string
Email(field string) string
}// где field - поле, которое не прошло проверку
// А использовать вот так:
err := validator.ValidateWithMessage(mockUser{
Email: "[email protected]",
Password: "p4ssw0rd",
}, &mockMessages{})
```Более подробный пример можно увидеть в `validator_test.go`