0Pricing
Go Academy · Lektion

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 sein
  • email – gültiges E-Mail-Format
  • min / max – Grenzen für Länge oder Zahlenwerte
  • gte / lte – numerische Vergleiche
  • oneof – 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

  1. Was sind Struct-Tags?
  2. JSON-Tags
  3. Validierungsbibliotheken
  4. Benutzerdefiniertes Tag-Parsing
← Zurück zu Go Academy