Використання проксі для роботи з API

Покрокове керівництво з автоматизації роботи з API через проксі-сервер на прикладі мови Go. Навіщо потрібні проксі для API-запитів та обходу лімітів.

Олександр Л.
Попередній перегляд

Олександр Л.

11 червня 2025

2520

2520

11 червня 2025

Інтерфейс програмування додатків (також широко відомий як API) — це поширена сьогодні практика комунікації з сайтами та додатками. У процесі використання API можна легко і структуровано обмінюватися функціями та даними, інтегруючи робочі процеси та потоки даних між різними сайтами, додатками та системами. Наприклад, між вашим сайтом і сервером даних ви можете обмінюватися такою інформацією як курси валют, прогнози погоди, оновлення цін на товари та багато іншого. API proxy server для роботи з API потрібен з низки причин:

  • API може бути розрахований лише на певну максимальну кількість запитів з одного IP за одиницю часу, і після перевищення ліміту ваш IP може бути заблоковано;
  • Вам може бути відмовлено в доступі к API через ваш географічний регіон;
  • Кількість звернень до сервера може бути обмежена, до того ж сильно.

Вам потрібен proxy API для того, щоб обмін даними не переривався. На практиці для цього використовують автоматизацію роботи шляхом вставки коду, що містить потрібні дані. Код може бути написаний на різних мовах програмування: Python, Go, Node.js, JavaScript, PHP та інших. Ми візьмемо для прикладу Go, який чудово підходить під вебпрограмування. Врахуйте, що для створення коду у вас має бути певний бекграунд програмування (знання про те, що таке код і які в ньому вказувати змінні). Або найміть фахівця для виконання конкретних завдань.


StableProxy

Шукаєш українські проксі або UA IP для таргетингу, реклами, SEO чи тестування локалізованих сервісів? У нас це є.


Автоматизуємо обмін даними між API та проксі

Припустимо, вам треба автоматизувати проксі-API зв'язку для отримання прогнозу погоди на завтра від публічного домену Weather.com (ми це наводимо суто для того, щоб далі створити наочний код). Покрокова інструкція, як працювати з проксі-сервером за допомогою мови Go, виглядатиме наступним чином:

  1. Отримайте адресу проксі у форматі IP:порт:ім'я_користувача:пароль. Це буде, наприклад, 123.45.67.89:8080:user123:pass123.
  2. Зареєструйтеся на сервісі WeatherAPI.com, щоб отримати ваш унікальний API ключ і повну адресу, звідки ви будете отримувати погодні дані, наприклад, https://api.weatherapi.com/v1/forecast.json?key=YOUR_API_KEY&q=Kyiv&days=2, де days=2 — це дата отримання погодних даних (наприклад, на завтра).
  3. Створіть код запиту, який у нашому випадку виглядатиме наступним чином: Go
    package main
    import (
        "fmt"
        "io/ioutil"
        "net/http"
        "net/url"
    )
    func main() {
        // === Крок 1: Налаштування проксі ===
        proxyStr := "http://user123:[email protected]:8080"
        proxyURL, err := url.Parse(proxyStr)
        if err != nil {
            fmt.Println("Помилка в проксі-адресі:", err)
            return
        }
        // === Крок 2: Налаштуйте HTTP клієнт з проксі ===
        transport := &http.Transport{Proxy: http.ProxyURL(proxyURL)}
        client := &http.Client{Transport: transport}
        // === Крок 3: Створіть запит до API погоди ===
        apiKey := "abc123456789xyz" // ← ваш API-ключ
        city := "Kyiv"               // ← ваше місто, в даному випадку, Київ.
        apiURL := fmt.Sprintf("https://api.weatherapi.com/v1/forecast.json?key=%s&q=%s&days=2", apiKey, city)
        req, err := http.NewRequest("GET", apiURL, nil)
        if err != nil {
            fmt.Println("Помилка при створенні запиту:", err)
            return
        }
        // === Крок 4: Відправте запит через проксі (у форматі JSON) ===
        resp, err := client.Do(req)
        if err != nil {
            fmt.Println("Помилка при відправці запиту:", err)
            return
        }
        defer resp.Body.Close()
        // === Крок 5: Прочитайте та запишіть отриману відповідь ===
        body, err := ioutil.ReadAll(resp.Body)
        if err != nil {
            fmt.Println("Помилка при читанні відповіді:", err)
            return
        }
        fmt.Println("Відповідь від API:")
        fmt.Println(string(body))
    }
    

В результаті використання proxy API service, ви зможете після запуску цього коду отримати потрібні вам дані. Врахуйте, що написання та обробка коду на будь-якій мові програмування вимагатиме від вас наявності програмного середовища для роботи з кодом. У нашому прикладі це мова програмування Go, яку треба отримати шляхом встановлення відповідного ПЗ для вашої ОС. Текстовий редактор, потрібний вам для написання коду та парсингу JSON файлів відповідей, — це Visual Studio Code, GoLand або Sublime Text/Notepad++ (редактори з підсвічуванням синтаксису). Також вам знадобиться налаштований проксі-сервер. І ще командний рядок (Windows) або Термінал (MacOS/Linux) для запуску написаного коду.


Популярні запитання

Що робити, якщо цільове API блокує запити навіть через проксі через TLS-відбиток (TLS Fingerprint)?

Сучасні системи захисту (наприклад, Cloudflare) аналізують не лише IP, а й TLS-відбиток вашого HTTP-клієнта. Стандартний клієнт Go (net/http) видає свій специфічний фінгерпринт. Якщо API вас блокує, необхідно використовувати сторонні бібліотеки для імітації відбитка браузера (наприклад, utls від масиву інструментів або спеціальні форки HTTP-клієнтів), або ж перейти на резидентські проксі найвищого рівня довіри.