Gin 1.17 では、データベース操作前のデータ検証に構造体タグ検証を使用するのは簡単です。デフォルトのエラー メッセージは詳細ですが、より明確なユーザー フィードバックを提供するようにカスタマイズできます。
Gin は、github.com/go-playground/validator/v10 パッケージを使用しています。検証。検証が失敗すると、validator.ValidationErrors オブジェクトが返されます。この詳細なエラー メッセージには、検証に失敗した各フィールドに関する情報が含まれています。
カスタマイズされたエラー メッセージを取得するには、次の手順を実行できます。
これは、検証エラーを動的フィールドベースのエラーを含む JSON 応答に変換する実装です。構造:
type ApiError struct { Field string Msg string } func HandleValidationErrors(c *gin.Context, err error) { 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}) } } func msgForTag(tag string) string { switch tag { case "required": return "This field is required" case "email": return "Invalid email" } return "" }
ハンドラー関数で、HandleValidationErrors を使用して検証エラーを処理します:
func UserHandler(c *gin.Context) { var u User err := c.BindQuery(&u); if err != nil { HandleValidationErrors(c, err) return } // ... }
以上が構造体タグを使用して、Gin 1.17 の検証エラー メッセージをカスタマイズする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。