Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menyesuaikan Mesej Ralat untuk Pengesahan Tag Struktur dalam Gin?

Bagaimanakah Saya Boleh Menyesuaikan Mesej Ralat untuk Pengesahan Tag Struktur dalam Gin?

Susan Sarandon
Lepaskan: 2024-12-23 13:40:33
asal
787 orang telah melayarinya

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

Pemformatan Mesej Ralat Tersuai untuk Pengesahan Tag Struktur dalam Gin

Apabila melakukan pengesahan struct dalam Gin, mesej ralat lalai yang dikembalikan adalah bertele-tele dan tiada mesra pengguna. Artikel ini menyediakan penyelesaian untuk menyesuaikan mesej ralat dan membentangkannya dalam format yang lebih terurus.

Menggunakan pakej go-playground/validator/v10, Gin menetapkan pengesahan melalui teg struct. Apabila pengesahan gagal, ralat yang dikembalikan ialah validator.ValidationErrors type. Untuk mengekstrak maklumat ralat tertentu, seseorang boleh menggunakan pakej ralat standard.

Dengan mengandaikan model ralat tersuai seperti berikut:

type ApiError struct {
    Field string
    Msg   string
}
Salin selepas log masuk

Coretan kod berikut menunjukkan cara untuk menyesuaikan mesej ralat:

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

Fungsi pembantu, msgForTag, boleh ditakrifkan untuk menyediakan mesej ralat tersuai berdasarkan pengesahan tag:

func msgForTag(tag string) string {
    switch tag {
    case "required":
        return "This field is required"
    case "email":
        return "Invalid email"
    }
    return ""
}
Salin selepas log masuk

Pendekatan ini membolehkan pemformatan ralat yang lebih mesra pengguna, menjadikannya lebih mudah untuk menyampaikan ralat pengesahan kepada pengguna akhir.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyesuaikan Mesej Ralat untuk Pengesahan Tag Struktur dalam 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