Validierungsbibliotheken
Structs mit Tags validieren
Validierungsbibliotheken ist eine kostenlose Go Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Go Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.
Warum Structs validieren
Bevor Sie eingehende Daten (aus einem Formular oder einer API) verwenden, müssen Sie sie häufig prüfen: Pflichtfelder, gültige E-Mail-Adresse und Wertebereiche. Validierungsbibliotheken automatisieren dies mithilfe von Struct-Tags.
Das validate-Tag
Beliebte Bibliotheken wie go-playground/validator lesen ein validate-Tag, das die Regeln für jedes Feld beschreibt.
Ein Feld kann beispielsweise validate:"required,email" enthalten.
Eine externe Abhängigkeit
Validierungsbibliotheken sind Pakete von Drittanbietern und nicht Teil der Standardbibliothek. Sie fügen sie mit go get github.com/go-playground/validator/v10 hinzu. Sie können hier nicht in einem eigenständigen Snippet ausgeführt werden.
Regeln definieren
Das validate-Tag jedes Feldes enthält durch Kommas getrennte Regeln. Häufige Regeln sind: required, email, min, max und len.
Beispiel-Struct
Ein typisches validiertes Struct. (Konzeptionell; für die Ausführung wird das Validator-Paket benötigt.)
type SignupForm struct {
Email string "validate:\"required,email\""
Password string "validate:\"required,min=8\""
Age int "validate:\"gte=18,lte=120\""
}Validierung ausführen
Sie erstellen eine Validator-Instanz und rufen Validate.Struct(form) auf. Die Methode gibt einen Fehler zurück, wenn eine Regel fehlschlägt, oder nil, wenn alle Regeln erfüllt sind.
import "github.com/go-playground/validator/v10"
var validate = validator.New()
func check(f SignupForm) error {
return validate.Struct(f)
}Fehler auslesen
Bei einem Fehler können Sie den zurückgegebenen Fehler in validator.ValidationErrors umwandeln. Dabei handelt es sich um ein Slice, das für jede verletzte Regel beschreibt, welches Feld und welche Einschränkung fehlgeschlagen sind.
Häufige integrierte Regeln
Nützliche Regeln sind:
required– darf kein Nullwert seinemail– gültiges E-Mail-Formatmin/max– Grenzen für Länge oder Zahlenwertegte/lte– numerische Vergleicheoneof– muss einem Wert aus einer Liste entsprechen
Verschachtelte Structs validieren
Validatoren durchlaufen verschachtelte Structs automatisch rekursiv. Für ein Feld, das selbst ein Struct ist, werden ebenfalls die zugehörigen Regeln geprüft, sodass ganze Objektgraphen mit einem Aufruf validiert werden.
Warum eine Bibliothek verwenden
Für jedes Feld eine Validierung von Hand zu schreiben, ist mühsam und fehleranfällig. Die tag-gesteuerte Validierung hält Regeln deklarativ, direkt bei den Feldern und in der gesamten Anwendung konsistent.
Manuelle Alternative
In einfachen Fällen können Sie ohne Bibliothek manuell validieren; bei vielen Feldern und komplexen Regeln ist eine Bibliothek jedoch die bessere Wahl. Dieser Ansatz läuft überall, da er nur die Standardbibliothek verwendet.
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"))
}Kurzer Check
Wie weiß eine Validierungsbibliothek wie go-playground/validator, welche Regeln sie auf jedes Feld anwenden soll?
Zusammenfassung
Validierungsbibliotheken:
- Lesen ein
validate-Tag, um Regeln anzuwenden - Sind Bibliotheken von Drittanbietern (z. B. go-playground/validator), die über go get hinzugefügt werden
- Geben Fehler zurück, die jede fehlgeschlagene Regel aufführen
- Einfache Fälle können manuell validiert werden
Häufig gestellte Fragen
Ist die Lektion „Validierungsbibliotheken“ kostenlos?
Ja — der vollständige Text von „Validierungsbibliotheken“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Go Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Validierungsbibliotheken“?
Structs mit Tags validieren Du übst Go Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Go Academy zu starten?
Keine Vorkenntnisse erforderlich. Go Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Validierungsbibliotheken“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Go Academy-Lektion Code schreiben und ausführen?
Ja. Jede Go Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Was sind Struct-Tags?
- JSON-Tags
- Validierungsbibliotheken
- Benutzerdefiniertes Tag-Parsing