Gin での構造体タグ検証のカスタム エラー メッセージの書式設定
Gin で構造体の検証を実行すると、返されるデフォルトのエラー メッセージが冗長で、内容が不足しています使いやすさ。この記事では、エラー メッセージをカスタマイズし、より管理しやすい形式で表示するためのソリューションを提供します。
go-playground/validator/v10 パッケージを使用して、Gin は struct タグを通じて検証を確立します。検証が失敗した場合、返されるエラーは validator.ValidationErrors タイプです。特定のエラー情報を抽出するには、標準エラー パッケージを利用できます。
次のようなカスタム エラー モデルを想定します。
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 }
ヘルパー関数 msgForTag を定義して、検証に基づいてカスタム エラー メッセージを提供できます。 tag:
func msgForTag(tag string) string { switch tag { case "required": return "This field is required" case "email": return "Invalid email" } return "" }
このアプローチにより、よりユーザーフレンドリーなエラー形式が可能になり、検証エラーをエンドユーザーに伝えやすくなります。
以上がGin での構造体タグ検証のエラー メッセージをカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。