Maison > développement back-end > Golang > Comment puis-je personnaliser les messages d'erreur pour la validation des balises Struct dans Gin ?

Comment puis-je personnaliser les messages d'erreur pour la validation des balises Struct dans Gin ?

Susan Sarandon
Libérer: 2024-12-23 13:40:33
original
787 Les gens l'ont consulté

How Can I Customize Error Messages for Struct Tag Validation in Gin?

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
}
Copier après la connexion

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
}
Copier après la connexion

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 ""
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal