Heim >Backend-Entwicklung >Golang >Wie kann ich Fehlermeldungen aus der Struct-Tag-Validierung von Gin anpassen?

Wie kann ich Fehlermeldungen aus der Struct-Tag-Validierung von Gin anpassen?

Susan Sarandon
Susan SarandonOriginal
2024-12-15 05:42:10519Durchsuche

How to Customize Error Messages from Gin's Struct Tag Validation?

Anpassen von Fehlermeldungen aus der Struktur-Tag-Validierung

In Gin wird die Struktur-Tag-Validierung verwendet, um die Datenintegrität vor dem Einfügen in die Datenbank sicherzustellen. Der zurückgegebene Standardfehler ist ausführlich und für den Benutzer nicht aussagekräftig. In diesem Artikel wird beschrieben, wie Sie die Fehlermeldung anpassen, um eine aussagekräftigere Antwort bereitzustellen.

Gin verwendet das Paket go-playground/validator/v10 zur Validierung. Fehler werden als validator.ValidationErrors zurückgegeben. Um die Nachricht anzupassen, verwenden Sie das Standardfehlerpaket, um den Fehler zu entpacken und auf die validator.FieldError-Felder zuzugreifen.

Erstellen Sie ein Fehlermodell (z. B. ApiError), um die Struktur Ihrer benutzerdefinierten Fehlermeldung zu definieren. Zum Beispiel:

type ApiError struct {
    Field string
    Msg   string
}

Behandeln Sie den Fehler in Ihrem Handler wie folgt:

var u User
err := c.BindQuery(&u);
if err != nil {
    var ve validator.ValidationErrors
    if errors.As(err, &ve) {
        out := make([]ApiError, len(ve))
        for i, fe := range ve {
            out[i] = ApiError{fe.Field(), msgForTag(fe.Tag())}
        }
        c.JSON(http.StatusBadRequest, gin.H{"errors": out})
    }
    return
}

Definieren Sie abschließend eine Hilfsfunktion, um Validierungs-Tags benutzerdefinierten Nachrichten zuzuordnen:

func msgForTag(tag string) string {
    switch tag {
    case "required":
        return "This field is required"
    case "email":
        return "Invalid email"
    }
    return ""
}

Mit diesem Ansatz werden Fehlermeldungen mit dem Feldnamen und einer maßgeschneiderten Nachricht basierend auf dem Validierungs-Tag angepasst.

Das obige ist der detaillierte Inhalt vonWie kann ich Fehlermeldungen aus der Struct-Tag-Validierung von Gin anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn