func vkvKeysHandler(db *vkv.DB) func(http.ResponseWriter, *http.Request) { return func(w http.ResponseWriter, r *http.Request) { switch r.Method { case "GET": q := r.URL.Query() end := q.Get("end") if end == "" { end = "\xff" } limit := 0 if q.Get("limit") != "" { ilimit, err := strconv.Atoi(q.Get("limit")) if err != nil { http.Error(w, "bad limit", 500) } limit = ilimit } res, err := db.Keys(q.Get("start"), end, limit) if err != nil { panic(err) } httputil.WriteJSON(w, map[string]interface{}{"keys": res}) return default: w.WriteHeader(http.StatusMethodNotAllowed) } } }