gin フレームワークを使用して、go でバリデーター/バインダー ミドルウェアを作成しようとしています。
これがモデルです
type LoginForm struct{
Email string `json:"email" form:"email" binding:"email,required"`
Password string `json:"password" form:"password" binding:"required"`
}
ルーター
router.POST("/login",middlewares.Validator(LoginForm{}) ,controllers.Login)
ミドルウェア
func Validator(v interface{}) gin.HandlerFunc{
return func(c *gin.Context){
a := reflect.New(reflect.TypeOf(v))
err:=c.Bind(&a)
if(err!=nil){
respondWithError(401, "Login Error", c)
return
}
c.Set("LoginForm",a)
c.Next()
}
}
私はgolangが初めてです。問題は、間違った変数へのバインドにあることを理解しています。これを解決する他の方法はありますか?