Використання проксі для роботи з 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, який чудово підходить під вебпрограмування. Врахуйте, що для створення коду у вас має бути певний бекграунд програмування (знання про те, що таке код і які в ньому вказувати змінні). Або найміть фахівця для виконання конкретних завдань.
Автоматизуємо обмін даними між API та проксі
Припустимо, вам треба автоматизувати проксі-API зв'язку для отримання прогнозу погоди на завтра від публічного домену Weather.com (ми це наводимо суто для того, щоб далі створити наочний код). Покрокова інструкція, як працювати з проксі-сервером за допомогою мови Go, виглядатиме наступним чином:
- Отримайте адресу проксі у форматі
IP:порт:ім'я_користувача:пароль. Це буде, наприклад,123.45.67.89:8080:user123:pass123. - Зареєструйтеся на сервісі WeatherAPI.com, щоб отримати ваш унікальний API ключ і повну адресу, звідки ви будете отримувати погодні дані, наприклад,
https://api.weatherapi.com/v1/forecast.json?key=YOUR_API_KEY&q=Kyiv&days=2, деdays=2— це дата отримання погодних даних (наприклад, на завтра). - Створіть код запиту, який у нашому випадку виглядатиме наступним чином:
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) для запуску написаного коду.
