> Как программа определяет URL для выполнения запросов по списку (Go)
Уровень: senior · Роль: backend · Язык: Go · Категория: Технические вопросы
Компании: Ozon
Стек: Go
> Пример ответа
В Go программа обычно определяет URL для выполнения запросов по списку через конфигурацию (например, YAML, JSON, переменные окружения) или программное формирование на основе шаблонов. Рассмотрим типичный подход:
-
Конфигурация списка URL: URL хранятся в структуре, загружаемой из файла или env:
GOtype Config struct {Endpoints []string `yaml:"endpoints"`}// Загрузка из YAMLvar cfg Configdata, _ := os.ReadFile("config.yaml")yaml.Unmarshal(data, &cfg) -
Динамическое формирование: URL собирается из базового адреса и параметров:
GObaseURL := "https://api.example.com"endpoints := []string{"users", "posts", "comments"}for _, ep := range endpoints {fullURL := fmt.Sprintf("%s/%s", baseURL, ep)// Выполнение запроса} -
Использование
net/url: Для сложных запросов с query-параметрами:GOu, _ := url.Parse("https://api.example.com/items")q := u.Query()q.Set("list", "active")u.RawQuery = q.Encode()// u.String() -> https://api.example.com/items?list=active -
Пакетный запрос: Для списка URL используется
sync.WaitGroupилиerrgroupдля параллельной обработки:GOvar wg sync.WaitGroupfor _, url := range urls {wg.Add(1)go func(u string) {defer wg.Done()resp, _ := http.Get(u)// обработка}(url)}wg.Wait()
Таким образом, программа либо берет готовый список URL из конфигурации, либо генерирует их на лету, а затем выполняет запросы параллельно или последовательно.
> Похожие задачи по Go
Как реализовать worker pool для ограничения количества горутин в Go
Как программа узнает об окончании списка URL и передает сигнал завершения
На каком языке написан компилятор Go
Как использовать пакет context для передачи сигнала закрытия 15 горутинам в Go
> Похожие задачи по backend
Как реализовать worker pool для ограничения количества горутин в Go
Как программа узнает об окончании списка URL и передает сигнал завершения
На каком языке написан компилятор Go
Как использовать пакет context для передачи сигнала закрытия 15 горутинам в Go
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью