cinderguard

cinderguard

Схемы, правила и понятные ошибки для Go.

Версия 1.1.0 Go 1.21+ Лицензия Apache-2.0 pkg.go.dev

cinderguard — небольшая библиотека валидации для Go. Правила комбинируются, ошибки собираются списком, а не выбрасываются по одной, а сообщения готовы к показу пользователю.

go get github.com/cinderguardhq/cinderguard@latest

Пример

package main

import (
	"context"
	"fmt"
	"log"

	"github.com/cinderguardhq/cinderguard"
)

func main() {
	ctx := context.Background()

	v, err := cinderguard.New(cinderguard.Options{
		AllowUnknown: false,
		MaxErrors:    100,
	})
	if err != nil {
		log.Fatal(err)
	}
	defer v.Close()

	if err := v.Field(ctx, "email", "required|email"); err != nil {
		log.Fatal(err)
	}

	items, err := v.Validate(ctx, []byte("{"email":"ada@example.com"}"))
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(items)
}

Возможности

Документация

УстановкаТребования, установка и сборка из исходников. Первые шагиПервая программа и основные понятия. ПримерыЗаконченные программы для типичных задач. НастройкиВсе параметры, их типы и значения по умолчанию. Справочник APIСигнатуры и поведение публичного API. БенчмаркиБенчмарки и советы по скорости. Решение проблемЧастые проблемы и их решения. FAQКороткие ответы на частые вопросы. Обновление версийКак переходить между мажорными версиями. Список измененийИстория релизов. Как помочь проектуКак собрать проект и отправить изменения.