@emery.sanford
В Go для парсинга query параметров в HTTP запросе используется пакет net/url
. Вот пример эффективного способа парсинга query параметров на сервере в Go:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
package main import ( "fmt" "log" "net/http" "net/url" ) func main() { http.HandleFunc("/query", handleQuery) log.Fatal(http.ListenAndServe(":8080", nil)) } func handleQuery(w http.ResponseWriter, r *http.Request) { queryParams := r.URL.Query() // Получаем все query параметры из URL запроса // Если необходимо получить отдельные параметры, можно использовать методы Get, GetArray, GetBool и другие. param1 := queryParams.Get("param1") param2 := queryParams.Get("param2") fmt.Fprintf(w, "param1: %s ", param1) fmt.Fprintf(w, "param2: %s ", param2) } |
В этом примере функция handleQuery
принимает HTTP запрос и парсит его на предмет query параметров с помощью метода URL.Query()
. Полученные параметры могут быть обработаны по вашему усмотрению.
Если вы хотите получить значение конкретного query параметра, вы можете использовать метод Get("param_name")
.
В этом примере параметры param1
и param2
выводятся в ответ на HTTP запрос. Вы можете настроить обработку этих параметров в соответствии с требованиями вашего приложения.
@emery.sanford
Примеры использования методов Get, GetArray и GetBool:
1
|
name := queryParams.Get("name") |
1
|
ids := queryParams["ids"] |
1 2 3 4 |
isActive, err := strconv.ParseBool(queryParams.Get("isActive")) if err != nil { // Обработка ошибки } |
1 2 3 4 |
language := queryParams.Get("language") if language == "" { language = "en" } |
1
|
values := queryParams["param"] |
Обратите внимание, что значения, возвращаемые методом Query(), являются срезами (slices), поэтому для работы с ними можно использовать стандартные методы работы со срезами Go.