Выбор ответа 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.

Варианты ответа

  1. r.URL.Query().Get("id")
  2. mux.Vars(r)["id"]
  3. r.PathValue("id")правильный ответ
  4. r.Form["id"]

Разбор

С Go 1.22 шаблоны ServeMux поддерживают метод и сегменты-параметры, а значения достаются r.PathValue. URL.Query читает параметры строки запроса после ?. mux.Vars это API gorilla/mux. r.Form содержит параметры формы и строки запроса, но не пути.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме