Heim >Backend-Entwicklung >Golang >Wie kann ich Fehlermeldungen aus der Struct-Tag-Validierung von Gin anpassen?
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!