Heim >Backend-Entwicklung >Golang >Wie kann ich Validierungsfehlermeldungen in Gin 1.17 mithilfe von Struktur-Tags anpassen?
In Gin 1.17 ist die Verwendung der Struktur-Tag-Validierung zur Datenvalidierung vor Datenbankoperationen unkompliziert. Während die Standardfehlermeldungen ausführlich sind, können sie angepasst werden, um ein klareres Benutzerfeedback zu geben.
Gin verwendet das Paket github.com/go-playground/validator/v10 für Validierung. Wenn die Validierung fehlschlägt, wird ein validator.ValidationErrors-Objekt zurückgegeben. Diese ausführliche Fehlermeldung enthält Informationen zu jedem Feld, dessen Validierung fehlgeschlagen ist.
Um benutzerdefinierte Fehlermeldungen zu erhalten, können Sie:
Hier ist eine Implementierung, die Validierungsfehler in eine JSON-Antwort mit einem dynamischen feldbasierten Fehler übersetzt Struktur:
type ApiError struct { Field string Msg string } func HandleValidationErrors(c *gin.Context, err error) { 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}) } } func msgForTag(tag string) string { switch tag { case "required": return "This field is required" case "email": return "Invalid email" } return "" }
Verwenden Sie in einer Handlerfunktion HandleValidationErrors, um Validierungsfehler zu behandeln:
func UserHandler(c *gin.Context) { var u User err := c.BindQuery(&u); if err != nil { HandleValidationErrors(c, err) return } // ... }
Das obige ist der detaillierte Inhalt vonWie kann ich Validierungsfehlermeldungen in Gin 1.17 mithilfe von Struktur-Tags anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!