Go: обрабатывать пустую переменную Gorilla mux

Я использую гориллу, чтобы получить значения шаблона. Как мне обработать пустую переменную так:

Идти:

func ProductHandler (w http.ResponseWriter, r *http.Request) {
    vars := mux.Vars(r)
    a := vars["key"]
    if a = "" {       //does not seem to register empty string
       //do something
    } else 
       //do something
}

var r = mux.NewRouter()

func main() {
    r.HandleFunc("/products/{key}", ProductHandler)

    http.Handle("/", r)

    http.ListenAndServe(":8080", nil)
}

Когда я набираю URL www.example.com/products или www.example.com/products/, я получаю сообщение об ошибке 404 страница не найдена. Как мне обработать пустую переменную в ProductHandler?

http://www.gorillatoolkit.org/pkg/mux

1 ответ

Самое простое решение? Добавлять:

r.HandleFunc("/products", ProductHandler)

Я почти уверен, что Gorilla проведет самый длинный матч в порядке регистрации.

Это также способ , которым страница обзора документации предлагает это использовать:

Затем зарегистрируйте маршруты в подуровне:

s.HandleFunc("/products/", ProductsHandler)
s.HandleFunc("/products/{key}", ProductHandler)
s.HandleFunc("/articles/{category}/{id:[0-9]+}"), ArticleHandler)
Другие вопросы по тегам