🟡 Средний · 2 очк. Стандартная библиотека
Что делает http.HandleFunc("GET /users/{id}", handler) в Go 1.22+?
A Ошибка - невалидный паттерн
B Обрабатывает только GET-запросы с path-параметром id
C Обрабатывает все HTTP-методы
D Перенаправляет на /users/
Объяснение вопроса

В Go 1.22 стандартный net/http.ServeMux научился понимать метод и path-параметры в шаблоне пути. Строка "GET /users/{id}" регистрирует обработчик только для метода GET и пути вида /users/123.

Получение параметра

http.HandleFunc("GET /users/{id}", func(w http.ResponseWriter, r *http.Request) {
    id := r.PathValue("id")  // "123" для /users/123
})

Раньше для такого нужны были роутеры вроде chi или gorilla/mux. Теперь базовый сценарий покрыт стандартной библиотекой.

Особенности

  • Метод и путь в одном строковом шаблоне
  • r.PathValue("id") возвращает значение параметра
  • Конфликтующие пути обрабатываются по правилам ServeMux (длинный более специфичный путь имеет приоритет)
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.