Использование прокси для работы с API
Олександр Л.
11 czerwca 2025
2190
2190
11 czerwca 2025
Interfejs programowania aplikacji (znany również jako API) — to powszechna dzisiaj praktyka komunikacji z witrynami i aplikacjami. Podczas korzystania z API można łatwo i strukturalnie wymieniać funkcje i dane, integrując płynnie przepływy pracy i strumienie danych między różnymi witrynami, aplikacjami i systemami. Na przykład, pomiędzy Twoją witryną a serwerem danych można wymieniać informacje takie jak kursy walut, prognozy pogody, aktualizacje cen produktów i wiele innych. Serwer proxy API do pracy z API jest konieczny z kilku powodów:
- API może być przeznaczone tylko na określoną maksymalną liczbę zapytań z jednego IP w jednostce czasu, a po przekroczeniu tego limitu Twój IP może zostać zablokowany;
- Mogą zostać odrzucone odwołania do API ze względu na Twój region geograficzny;
- Liczba odwołań do serwera może być ograniczona, i to bardzo. Potrzebujesz proxy API, aby wymiana danych nie była zakłócona. W praktyce do tego używa się automatyzacji pracy poprzez wstawianie kodu zawierającego potrzebne dane. Kod może być napisany w różnych językach programowania: Python, Go, Node.js, JavaScript, PHP i innych. Weźmy jako przykład Go, doskonale nadający się do programowania webowego. Zwróć uwagę, że aby napisać kod, musisz mieć podstawy programowania (wiedzieć, czym jest kod i jakie zmienne w nim wskazywać). Alternatywnie, możesz zatrudnić specjalistę do wykonania konkretnych zadań.
Automatyzujemy wymianę danych między API a proxy
Załóżmy, że musisz zautomatyzować zestaw proxy-API do pobrania prognozy pogody na jutro z publicznego domeny Weather.com (to przykład, aby dalej móc utworzyć wizualny kod). Instrukcja krok po kroku, jak pracować z serwerem proxy, w języku Go, będzie wyglądać następująco:
- Otrzymaj adres proxy w formacie IP:port:nazwa_użytkownika:hasło. Na przykład: 123.45.67.89:8080:user123:pass123.
- Zarejestruj się na serwisie WeatherAPI.com, aby uzyskać swój unikalny klucz API i pełny adres, z którego będziesz pobierać dane pogodowe, np. https://api.weatherapi.com/v1/forecast.json?key=YOUR_API_KEY&q=Kyiv&days=2, gdzie days=2 — to data pobierania danych pogodowych (np. na jutro).
- Stwórz kod zapytania, który w naszym przypadku będzie wyglądał następująco:
package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
)
func main()
{
// === Krok 1: Konfiguracja proxy ===
proxyStr := "http://user123:[email protected]:8080"
proxyURL, err := url.Parse(proxyStr)
if err != nil {
fmt.Println("Błąd w adresie proxy:", err)
return
}
// === Krok 2: Skonfiguruj klienta HTTP z proxy ===
transport := &http.Transport{Proxy: http.ProxyURL(proxyURL)}
client := &http.Client{Transport: transport}
// === Krok 3: Utwórz zapytanie do API pogodowego ===
apiKey := "abc123456789xyz" // ← Twój klucz API
city := "Kyiv" // ← Twoje miasto, w tym przypadku Kijów.
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("Błąd przy tworzeniu zapytania:", err)
return
}
// === Krok 4: Wyślij zapytanie przez proxy (w formacie JSON) ===
resp, err := client.Do(req)
if err != nil {
fmt.Println("Błąd podczas wysyłania zapytania:", err)
return
}
defer resp.Body.Close()
// === Krok 5: Odczytaj i zapisz otrzymaną odpowiedź ===
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println("Błąd podczas odczytu odpowiedzi:", err)
return
}
fmt.Println("Odpowiedź od API:")
fmt.Println(string(body))
}
W wyniku używania serwisu proxy API, po uruchomieniu tego kodu będziesz mógł uzyskać potrzebne dane.
Zwróć uwagę, że pisanie i obsługa kodu na dowolnym języku programowania wymaga od Ciebie posiadania środowiska do pracy z kodem. W naszym przykładzie jest to język Go, który trzeba pobrać i zainstalować odpowiednie oprogramowanie dla Twojego systemu operacyjnego. Edytor tekstu, niezbędny do pisania kodu i parsowania plików JSON to Visual Studio Code, GoLand lub Sublime Text/Notepad++ (edytory z podświetleniem składni). Dodatkowo potrzebujesz skonfigurowanego serwera proxy. I jeszcze terminal systemu Windows lub Terminal (MacOS/Linux) do uruchomienia napisanego kodu.
