Benutzerdefinierte Fehlermeldungsformatierung für die Struktur-Tag-Validierung in Gin
Bei der Durchführung der Strukturvalidierung in Gin ist die zurückgegebene Standardfehlermeldung ausführlich und fehlt Benutzerfreundlichkeit. Dieser Artikel bietet eine Lösung, um die Fehlermeldung anzupassen und in einem besser verwaltbaren Format darzustellen.
Mit dem Paket go-playground/validator/v10 richtet Gin die Validierung durch Struktur-Tags ein. Wenn die Validierung fehlschlägt, ist der zurückgegebene Fehler ein validator.ValidationErrors-Typ. Um spezifische Fehlerinformationen zu extrahieren, kann man das Standardfehlerpaket verwenden.
Angenommen, ein benutzerdefiniertes Fehlermodell wie folgt:
type ApiError struct { Field string Msg string }
Der folgende Codeausschnitt zeigt, wie die Fehlermeldung angepasst wird:
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 }
Eine Hilfsfunktion, msgForTag, kann definiert werden, um benutzerdefinierte Fehlermeldungen basierend auf der Validierung bereitzustellen tag:
func msgForTag(tag string) string { switch tag { case "required": return "This field is required" case "email": return "Invalid email" } return "" }
Dieser Ansatz ermöglicht eine benutzerfreundlichere Fehlerformatierung und erleichtert die Kommunikation von Validierungsfehlern an den Endbenutzer.
Das obige ist der detaillierte Inhalt vonWie kann ich Fehlermeldungen für die Struct-Tag-Validierung in Gin anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!