Biblioteki walidacji
Waliduj struktury za pomocą tagów
Biblioteki walidacji to bezpłatna lekcja Go Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Go Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Go Academy zawiera 4 lekcji w sumie.
Dlaczego warto walidować struktury
Przed użyciem danych wejściowych (z formularza lub interfejsu API) często należy je sprawdzić: wymagane pola, poprawny adres e-mail czy zakresy wartości. Biblioteki walidacyjne automatyzują ten proces za pomocą tagów struktur.
Tag validate
Popularne biblioteki, takie jak go-playground/validator, odczytują tag validate opisujący reguły dla poszczególnych pól.
Pole może zawierać tag validate:"required,email".
Zewnętrzna zależność
Biblioteki walidacyjne to pakiety innych firm, które nie należą do biblioteki standardowej. Należy dodać je za pomocą go get github.com/go-playground/validator/v10. Nie można ich uruchomić w samodzielnym fragmencie kodu przedstawionym tutaj.
Definiowanie reguł
Tag validate każdego pola zawiera reguły rozdzielone przecinkami. Typowe reguły to: required, email, min, max, len.
Przykładowa struktura
Typowa struktura podlegająca walidacji. (Przykład koncepcyjny; do uruchomienia wymaga pakietu validator).
type SignupForm struct {
Email string "validate:\"required,email\""
Password string "validate:\"required,min=8\""
Age int "validate:\"gte=18,lte=120\""
}Uruchamianie walidacji
Należy utworzyć instancję walidatora i wywołać Validate.Struct(form). Metoda zwraca błąd, jeśli dowolna reguła nie zostanie spełniona, albo nil, jeśli wszystkie reguły zostaną spełnione.
import "github.com/go-playground/validator/v10"
var validate = validator.New()
func check(f SignupForm) error {
return validate.Struct(f)
}Odczytywanie błędów
W przypadku niepowodzenia zwrócony błąd można rzutować na validator.ValidationErrors — slice opisujący każdą naruszoną regułę: wskazujący pole i niespełnione ograniczenie.
Typowe wbudowane reguły
Przydatne reguły to:
required— wartość nie może być wartością zerowąemail— poprawny format adresu e-mailmin/max— ograniczenia długości lub wartości liczbowejgte/lte— porównania liczboweoneof— wartość musi należeć do podanej listy
Walidowanie zagnieżdżonych struktur
Walidatory automatycznie rekurencyjnie sprawdzają zagnieżdżone struktury. Pole będące samo w sobie strukturą również jest sprawdzane zgodnie z własnymi regułami, dzięki czemu cała grafowa struktura obiektów jest walidowana jednym wywołaniem.
Dlaczego warto używać biblioteki
Ręczne pisanie walidacji dla każdego pola jest żmudne i podatne na błędy. Walidacja oparta na tagach pozwala deklaratywnie definiować reguły obok pól i zachować spójność w całej aplikacji.
Alternatywa ręczna
W prostych przypadkach można przeprowadzić walidację ręcznie, bez biblioteki; przy wielu polach i złożonych regułach lepiej sprawdzi się biblioteka. Ten sposób działa wszędzie, ponieważ korzysta wyłącznie z biblioteki standardowej.
package main
import (
"errors"
"fmt"
"strings"
)
func validateEmail(e string) error {
if !strings.Contains(e, "@") {
return errors.New("invalid email")
}
return nil
}
func main() {
fmt.Println(validateEmail("bad"))
fmt.Println(validateEmail("a@b.com"))
}Szybkie sprawdzenie
Skąd biblioteka walidacyjna, taka jak go-playground/validator, wie, które reguły zastosować do poszczególnych pól?
Podsumowanie
Biblioteki walidacyjne:
- Odczytują tag
validate, aby zastosować reguły - Pochodzą od innych firm (np. go-playground/validator) i dodaje się je za pomocą go get
- Zwracają błędy zawierające informacje o każdej niespełnionej regule
- Proste przypadki można walidować ręcznie
Często zadawane pytania
Czy lekcja „Biblioteki walidacji” jest bezpłatna?
Tak — pełny tekst „Biblioteki walidacji” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Go Academy, przejdź na CoddyKit PRO. Kurs Go Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Biblioteki walidacji”?
Waliduj struktury za pomocą tagów Ćwiczysz Go Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Go Academy?
Nie wymagamy żadnego doświadczenia. Go Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Biblioteki walidacji”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Go Academy?
Tak. Każda lekcja Go Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Czym są tagi struct
- Tagi JSON
- Biblioteki walidacji
- Własne analizowanie tagów