sql >> Base de Datos >  >> NoSQL >> Redis

Pasar una referencia a una instancia de Redis a un controlador Gorilla/Mux

Escriba una función que convierta una función con el argumento de instancia de Redis en un controlador HTTP:

func redisHandler(c *RedisInstance,
    f func(c *RedisInstance, w http.ResponseWriter, r *http.Request)) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { f(c, w, r) })
}

Escribe tus manejadores de API así:

func AddTodoHandler(c *RedisInstance, w http.ResponseWriter, r *http.Request) {
    ...
}

Agregue al mux así:

r.Handler("/todo", redisHandler(client, api.AddTodoHandler)).Methods("POST")

donde client es la instancia de Redis.