Użycie proxy do pracy z API
Krok po kroku instrukcja automatyzacji żądań API przez serwer proxy na przykładzie języka Go. Dowiedz się, jak omijać limity zapytań i blokady geograficzne.
Олександр Л.
11 czerwca 2025
2554
2554
11 czerwca 2025
Interfejs programowania aplikacji (szeroko znany jako API) to powszechna dziś praktyka komunikacji ze stronami internetowymi i aplikacjami. W procesie korzystania z API można w łatwy i ustrukturyzowany sposób wymieniać funkcje i dane, bezproblemowo integrując procesy robocze i strumienie danych między różnymi witrynami, aplikacjami i systemami. Na przykład między Twoją stroną a serwerem danych możesz wymieniać takie informacje, jak kursy walut, prognozy pogody, aktualizacje cen produktów i wiele innych. Serwer proxy API do pracy z API jest potrzebny z kilku powodów:
- API może być zaprogramowane tylko na określoną maksymalną liczbę żądań z jednego adresu IP w jednostce czasu, a po przekroczeniu progu Twój adres IP może zostać zablokowany;
- Dostęp do API może zostać odrzucony ze względu na Twój region geograficzny;
- Liczba połączeń z serwerem może być ograniczona, i to bardzo rygorystycznie.
Potrzebujesz proxy API, aby wymiana danych nie została przerwana. W praktyce wykorzystuje się do tego automatyzację pracy poprzez umieszczenie kodu zawierającego niezbędne dane. Kod może być napisany w różnych językach programowania: Python, Go, Node.js, JavaScript, PHP i innych. Jako przykład weźmiemy język Go, który doskonale sprawdza się w programowaniu webowym. Pamiętaj, że do stworzenia kodu musisz posiadać pewne podstawy programowania (wiedzę o tym, czym jest kod i jakie zmienne w nim określić). Alternatywnie możesz wynająć specjalistę do wykonania konkretnych zadań.
Automatyzujemy wymianę danych między API a proxy
Załóżmy, że musisz zautomatyzować powiązanie proxy-API w celu pobierania prognozy pogody na jutro z publicznej domeny Weather.com (podajemy to wyłącznie w celu stworzenia przejrzystego przykładowego kodu). Instrukcja krok po kroku, jak pracować z serwerem proxy przy użyciu języka Go, wygląda następująco:
- Pobierz adres proxy w formacie
IP:port:użytkownik:hasło. Będzie to na przykład123.45.67.89:8080:user123:pass123. - Zarejestruj się w usłudze WeatherAPI.com, aby uzyskać unikalny klucz API oraz pełny adres, z którego będziesz pobierać dane pogodowe, na przykład
https://api.weatherapi.com/v1/forecast.json?key=YOUR_API_KEY&q=Kyiv&days=2, gdziedays=2to data pobrania danych pogodowe (na przykład na jutro). - Utwórz kod żądania, który w naszym przypadku będzie wyglądał następująco:
Go
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 żądanie 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 podczas tworzenia żądania:", err) return } // === Krok 4: Wyślij żądanie przez proxy (w formacie JSON) === resp, err := client.Do(req) if err != nil { fmt.Println("Błąd podczas wysyłania żądania:", 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 odczytywania odpowiedzi:", err) return } fmt.Println("Odpowiedź z API:") fmt.Println(string(body)) }
W rezultacie użycia proxy API service będziesz mógł po uruchomieniu tego kodu otrzymać potrzebne dane. Pamiętaj, że pisanie i przetwarzanie kodu w dowolnym języku programowania wymaga posiadania środowiska programistycznego do pracy z kodem. W naszym przykładzie jest to język programowania Go, który należy uzyskać instalując odpowiednie oprogramowanie dla swojego systemu operacyjnego. Edytor tekstu potrzebny do pisania kodu i parsowania plików odpowiedzi JSON to Visual Studio Code, GoLand lub Sublime Text/Notepad++ (edytory z podświetlaniem składni). Będziesz także potrzebować skonfigurowanego serwera proxy oraz wiersza poleceń (Windows) lub Terminala (MacOS/Linux) do uruchomienia napisanego kodu.
