Содержание
Примеры
Небольшие законченные программы. Каждую можно скопировать и запустить как есть.
Validate и Fields
Проверяет JSON-документ и возвращает список ошибок.
Возвращает пути всех объявленных полей.
package main
import (
"context"
"fmt"
"log"
"github.com/cinderguardhq/cinderguard"
)
func main() {
ctx := context.Background()
v, err := cinderguard.New(cinderguard.Options{
AllowUnknown: false,
Locale: "ru",
})
if err != nil {
log.Fatal(err)
}
defer v.Close()
items, err := v.Validate(ctx, []byte("{"email":"ada@example.com"}"))
if err != nil {
log.Fatal(err)
}
fmt.Println(items)
items, err := v.Fields(ctx)
if err != nil {
log.Fatal(err)
}
fmt.Println(items)
}
IsValid и Field
Сообщает, проходит ли документ проверку, не собирая сообщений об ошибках.
Добавляет правила для поля.
package main
import (
"context"
"fmt"
"log"
"github.com/cinderguardhq/cinderguard"
)
func main() {
ctx := context.Background()
v, err := cinderguard.New(cinderguard.Options{
AllowUnknown: false,
TrimStrings: true,
})
if err != nil {
log.Fatal(err)
}
defer v.Close()
ok, err := v.IsValid(ctx, []byte("{"email":"ada@example.com"}"))
if err != nil {
log.Fatal(err)
}
fmt.Println(ok)
if err := v.Field(ctx, "email", "required|email"); err != nil {
log.Fatal(err)
}
}