Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Übergeben Sie einen Verweis auf eine Redis-Instanz an einen Gorilla/Mux-Handler

Schreiben Sie eine Funktion, die eine Funktion mit dem Argument der Redis-Instanz in einen HTTP-Handler umwandelt:

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) })
}

Schreiben Sie Ihre API-Handler wie folgt:

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

Fügen Sie dem Mux wie folgt hinzu:

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

wobei client ist die Redis-Instanz.