自訂結構標籤驗證的錯誤訊息
在 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中文網其他相關文章!