Redis
 sql >> Database >  >> NoSQL >> Redis

Passa un riferimento a un'istanza Redis a un gestore Gorilla/Mux

Scrivi una funzione che converta una funzione con l'argomento dell'istanza Redis in un gestore 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) })
}

Scrivi i tuoi gestori API in questo modo:

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

Aggiungi al mux in questo modo:

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

dove client è l'istanza Redis.