XZTVC.ru | Еще один блог разработчика

Опубликовано: 18 апреля 2022 г. 21:49 | Автор: echodiv | Категория: Разработка | 👁 674

Создание GET запроса с параметрами в Go

Если нам нужно создать GET запрос в Go с query параметрами, то можно столкнуться с неожиданными трудностями.

Самый простой вариант, это создать строку содержащую параметры и передать её как эндпоинт в метод запроса. Это будет выглядить следующим образом:

package main
 
import (
	"fmt"
	"net/http"
)
 
func main() {
	client := &http.Client{}
 
	apiKey := "mySuperAwesomeApiKey"
	url := fmt.Sprintf("http://xztvc.ru/endpoint?api_key=%s", apiKey)
 
	req, err := http.NewRequest("GET", url, nil)
	if err != nil {
		panic(err)
	}
 
	resp, err := client.Do(req)
	if err != nil {
		panic(err)
	}
	fmt.Println(resp.Status)
}

В данном подходе главная опасность - это сложность в заполнении строки с параметрами. Можно легко запутаться, либо запутать того, кто будет смотреть код после нас. Для того чтобы избежать этого, можно пойти по следующему пути.