Выбор ответа Junior net/http и middleware спрашивают часто обновлено
Параметры пути в ServeMux Go 1.22
Вопрос
Как в стандартном ServeMux (Go 1.22+) получить id из маршрута GET /users/{id}?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: r.PathValue("id"). С Go 1.22 шаблоны ServeMux поддерживают метод и сегменты-параметры, а значения достаются r.PathValue.
Варианты ответа
r.URL.Query().Get("id")mux.Vars(r)["id"]r.PathValue("id")правильный ответr.Form["id"]
Разбор
С Go 1.22 шаблоны ServeMux поддерживают метод и сегменты-параметры, а значения достаются r.PathValue. URL.Query читает параметры строки запроса после ?. mux.Vars это API gorilla/mux. r.Form содержит параметры формы и строки запроса, но не пути.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «net/http и middleware»
- Статистика access-логов: ошибки и p95 на Go
- Разбор сырого HTTP/1.1 запроса на Go
- Разбор query-строки URL с декодированием на Go
- Маршрутизатор с параметрами пути в стиле ServeMux
- Rate limiter на токен-бакете для middleware на Go
- Зачем закрывать resp.Body
- Таймаут http.DefaultClient
- Обработчики net/http и горутины