Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menyesuaikan Mesej Ralat daripada Pengesahan Tag Struct Gin?

Bagaimana untuk Menyesuaikan Mesej Ralat daripada Pengesahan Tag Struct Gin?

Susan Sarandon
Lepaskan: 2024-12-15 05:42:10
asal
516 orang telah melayarinya

How to Customize Error Messages from Gin's Struct Tag Validation?

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
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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 ""
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan