Formatage personnalisé du message d'erreur pour la validation des balises Struct dans Gin
Lors de la validation de la structure dans Gin, le message d'erreur par défaut renvoyé est détaillé et manque convivialité. Cet article fournit une solution pour personnaliser le message d'erreur et le présenter dans un format plus gérable.
À l'aide du package go-playground/validator/v10, Gin établit la validation via des balises struct. Lorsque la validation échoue, l’erreur renvoyée est de type validator.ValidationErrors. Pour extraire des informations d'erreur spécifiques, vous pouvez utiliser le package d'erreurs standard.
En supposant un modèle d'erreur personnalisé comme suit :
type ApiError struct { Field string Msg string }
L'extrait de code suivant montre comment personnaliser le message d'erreur :
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 }
Une fonction d'assistance, msgForTag, peut être définie pour fournir des messages d'erreur personnalisés basés sur la validation tag :
func msgForTag(tag string) string { switch tag { case "required": return "This field is required" case "email": return "Invalid email" } return "" }
Cette approche permet un formatage des erreurs plus convivial, ce qui facilite la communication des erreurs de validation à l'utilisateur final.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!