HTTP-сервер на стандартной библиотеке
Одна из сильных сторон Go — богатая стандартная библиотека. Полноценный веб-сервер пишется в несколько строк без единой внешней зависимости.
func main() {
mux := http.NewServeMux()
mux.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("ok"))
})
log.Fatal(http.ListenAndServe(":8080", mux))
}Роутинг в Go 1.22+
В свежих версиях ServeMux научился разбирать методы и параметры пути прямо в паттерне: mux.HandleFunc("GET /users/{id}", handler). Раньше ради этого тянули сторонний роутер — теперь во многих случаях он не нужен.
Фреймворки вроде chi или gin по-прежнему полезны для крупных проектов, но начинать стоит со стандартной библиотеки — так лучше понимаешь, что происходит под капотом.