Valideringsbiblioteker
Validér structs med tags
Valideringsbiblioteker er en gratis Go Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Go Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Go Academy-kurset indeholder 4 lektioner i alt.
Hvorfor validere strukturer
Inden du bruger indgående data (fra en formular eller API), skal du ofte kontrollere dem: obligatoriske felter, gyldig e-mail og værdiintervaller. Valideringsbiblioteker automatiserer dette ved hjælp af struct-tags.
validate-tagget
Populære biblioteker som go-playground/validator læser et validate-tag, der beskriver regler for hvert felt.
Et felt kan have validate:"required,email".
En ekstern afhængighed
Validator-biblioteker er tredjepartspakker, som ikke er en del af standardbiblioteket. Du tilføjer dem med go get github.com/go-playground/validator/v10. De kan ikke køre i et selvstændigt kodestykke her.
Definition af regler
Hvert felts validate-tag angiver regler adskilt af kommaer. Almindelige regler er: required, email, min, max og len.
Eksempel på en struktur
En typisk valideret struktur. (Konceptuelt eksempel; validator-pakken er nødvendig for at køre det.)
type SignupForm struct {
Email string "validate:\"required,email\""
Password string "validate:\"required,min=8\""
Age int "validate:\"gte=18,lte=120\""
}Kørsel af validering
Du opretter en validator-instans og kalder Validate.Struct(form). Den returnerer en fejl, hvis en regel fejler, eller nil, hvis alle regler består.
import "github.com/go-playground/validator/v10"
var validate = validator.New()
func check(f SignupForm) error {
return validate.Struct(f)
}Læsning af fejlene
Ved fejl kan den returnerede fejl konverteres til validator.ValidationErrors, en slice, der beskriver hver regelovertrædelse: hvilket felt og hvilken begrænsning der fejlede.
Almindelige indbyggede regler
Nyttige regler omfatter:
required- må ikke have nulværdiemail- gyldigt e-mailformatmin/max- længde- eller numeriske grænsergte/lte- numeriske sammenligningeroneof- skal være ét af elementerne på en liste
Validering af indlejrede strukturer
Validatorer går automatisk rekursivt ned i indlejrede strukturer. Et felt, der selv er en struktur, får også kontrolleret sine egne regler, så hele objektgrafen valideres med ét kald.
Hvorfor bruge et bibliotek
Det er besværligt og fejlbehæftet at skrive validering i hånden for hvert felt. Tag-baseret validering holder reglerne deklarative, tæt på felterne og ensartede i hele din app.
Manuelt alternativ
I simple tilfælde kan du validere i hånden uden et bibliotek; ved mange felter og komplekse regler er et bibliotek bedre. Dette kan køre overalt, fordi det kun bruger standardbiblioteket.
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"))
}Hurtigt tjek
Hvordan ved et valideringsbibliotek som go-playground/validator, hvilke regler der skal anvendes på hvert felt?
Opsummering
Valideringsbiblioteker:
- Læser et
validate-tag for at anvende regler - Er tredjepartsbiblioteker (f.eks. go-playground/validator), som tilføjes via go get
- Returnerer fejl, der oplister hver regel, som fejlede
- Simple tilfælde kan valideres manuelt
Lær Go med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 51
- Lektioner
- 203
Ofte stillede spørgsmål
Er lektionen “Valideringsbiblioteker” gratis?
Ja — alle 3 lektioner i læringssporet Go Academy, inklusive “Valideringsbiblioteker”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Go Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Valideringsbiblioteker”?
Validér structs med tags Du øver dig i Go Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Go Academy?
Der kræves ingen tidligere erfaring. Go Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “Valideringsbiblioteker”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Go Academy-lektion?
Ja. Alle Go Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Hvad er struct tags
- JSON-tags
- Valideringsbiblioteker
- Parsing af brugerdefinerede tags