Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Passar uma referência a uma instância do Redis para um Gorilla/Mux Handler


Escreva uma função que converta uma função com o argumento de instância do Redis em um manipulador 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) })
}

Escreva seus manipuladores de API assim:
func AddTodoHandler(c *RedisInstance, w http.ResponseWriter, r *http.Request) {
    ...
}

Adicione ao mux assim:
r.Handler("/todo", redisHandler(client, api.AddTodoHandler)).Methods("POST")

onde client é a instância do Redis.