ginフレームワークを使用してバリデータ/バインダミドルウェアを作成しようとしています。golangのインタフェースから型変数を作成する
このモデル
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に非常に新しいです。私は問題が間違った変数へのバインディングであることを理解しています。 これを解決する他の方法はありますか?
モデル変数ではなく、ファクトリで渡します。 'type ViewFactory func()interface {}' –
私は分かりませんでした。あなたはもっと説明してください、または読むためのリンクを教えてくださいできますか? –