Какой используешь роутер

«Какой используешь роутер» — вопрос из категории Golang, который задают на 24% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Go часто используют gorilla/mux или стандартный http.ServeMux.

Gorilla/mux мощнее:

r := mux.NewRouter()
r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler)
http.ListenAndServe(":8080", r)

Стандартный http.ServeMux проще:

mux := http.NewServeMux()
mux.HandleFunc("/", homeHandler)
http.ListenAndServe(":8080", mux)

Выбор зависит от проекта:

  • Для REST API с параметрами — gorilla/mux.
  • Для простых задач — стандартный роутер.

Сейчас также популярны chi (легковесный) и echo/gin (фреймворки).