Ich versuche, Validator/Binder-Middleware in Go mit Gin-Framework zu erstellen.Erstellen einer Variablen des Typs von der Schnittstelle in Golang
Dies ist das Modell
type LoginForm struct{
Email string `json:"email" form:"email" binding:"email,required"`
Password string `json:"password" form:"password" binding:"required"`
}
Router
router.POST("/login",middlewares.Validator(LoginForm{}) ,controllers.Login)
Middleware
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()
}
}
Ich bin sehr neu golang. Ich verstehe das Problem mit der Bindung an die falsche Variable. Gibt es eine andere Möglichkeit, dies zu lösen?
Pass in einer Fabrik und nicht als Modellvariable. 'Typ ViewFactory func() Schnittstelle {}' –
Es tut mir leid, habe ich nicht verstanden. Kannst du bitte mehr erklären oder einen Link zum Lesen geben? –