首頁 > 後端開發 > Golang > 如何自訂 Gin 結構標籤驗證的錯誤訊息?

如何自訂 Gin 結構標籤驗證的錯誤訊息?

Susan Sarandon
發布: 2024-12-15 05:42:10
原創
516 人瀏覽過

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

自訂結構標籤驗證的錯誤訊息

在 Gin 中,結構標籤驗證用於在資料庫插入之前確保資料完整性。傳回的預設錯誤對於使用者來說是冗長且無意義的。本文介紹如何自訂錯誤訊息以提供更有意義的回應。

Gin 使用 go-playground/validator/v10 套件進行驗證。錯誤以 validator.ValidationErrors 傳回。若要自訂訊息,請使用標準錯誤包解包錯誤並存取 validator.FieldError 欄位。

建立錯誤模型(例如 ApiError)來定義自訂錯誤訊息的結構。例如:

type ApiError struct {
    Field string
    Msg   string
}
登入後複製

在處理程序中,如下處理錯誤:

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
}
登入後複製

最後,定義一個輔助函數以將驗證標籤對應到自訂訊息:

func msgForTag(tag string) string {
    switch tag {
    case "required":
        return "This field is required"
    case "email":
        return "Invalid email"
    }
    return ""
}
登入後複製

使用此方法,將使用欄位名稱和基於驗證標籤的客製化訊息來自訂錯誤訊息。

以上是如何自訂 Gin 結構標籤驗證的錯誤訊息?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板