Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyesuaikan Mesej Ralat daripada Pengesahan Tag Struct Gin?
Menyesuaikan Mesej Ralat daripada Pengesahan Tag Struktur
Dalam Gin, pengesahan teg struct digunakan untuk memastikan integriti data sebelum pemasukan pangkalan data. Ralat lalai yang dikembalikan adalah verbose dan tidak bermaklumat untuk pengguna. Artikel ini menerangkan cara untuk menyesuaikan mesej ralat untuk memberikan respons yang lebih bermakna.
Gin menggunakan pakej go-playground/validator/v10 untuk pengesahan. Ralat dikembalikan sebagai validator.ValidationErrors. Untuk menyesuaikan mesej, gunakan pakej ralat standard untuk membuka balut ralat dan akses validator. Medan FieldError.
Buat model ralat (cth., ApiError) untuk menentukan struktur mesej ralat tersuai anda. Contohnya:
type ApiError struct { Field string Msg string }
Dalam pengendali anda, kendalikan ralat seperti berikut:
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 }
Akhir sekali, tentukan fungsi pembantu untuk memetakan teg pengesahan kepada mesej tersuai:
func msgForTag(tag string) string { switch tag { case "required": return "This field is required" case "email": return "Invalid email" } return "" }
Menggunakan pendekatan ini, mesej ralat akan disesuaikan dengan nama medan dan mesej yang disesuaikan berdasarkan pengesahan tag.
Atas ialah kandungan terperinci Bagaimana untuk Menyesuaikan Mesej Ralat daripada Pengesahan Tag Struct Gin?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!