Использование прокси для работы с API
Олександр Л.
11 czerwca 2025
1035
1035
11 czerwca 2025
Interfejs programowania aplikacji (znany również jako API) — to obecnie powszechna praktyka komunikacji ze stronami internetowymi i aplikacjami. W trakcie korzystania z API można w prosty i uporządkowany sposób wymieniać funkcje i dane, łatwo integrując procesy robocze i przepływy danych pomiędzy różnymi stronami, aplikacjami i systemami. Na przykład, pomiędzy Twoją stroną a serwerem danych można wymieniać informacje takie jak kursy walut, prognozy pogody, aktualizacje cen towarów i wiele innych. Serwer proxy API niezbędny do pracy z API z kilku powodów:
- API może być zaprojektowane tylko na określoną maksymalną ilość zapytań z jednego IP w jednostce czasu, a po przekroczeniu tego limitu Twój IP może zostać zablokowany;
- Może odmówić dostępu do API ze względu na Twój region geograficzny;
- Liczba żądań do serwera może być ograniczona, i to bardzo. Potrzebujesz proxy API, aby wymiana danych nie była przerwana. W praktyce do tego celu używa się automatyzacji pracy poprzez wstawienie 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źmiemy na przykład Go, który świetnie nadaje się do programowania webowego. Pamiętaj, że aby napisać taki kod, musisz mieć pewne podstawy programowania (wiedzieć, czym jest kod i jakie zmienne się w nim podaje). Lub zatrudnij specjalistę do wykonania konkretnych zadań.
Automatyzujemy wymianę danych między API a proxy
Załóżmy, że chcesz zautomatyzować połączenie proxy-API do uzyskania prognozy pogody na jutro z domeny publicznej Weather.com (podajemy to tylko jako przykład, by później utworzyć czytelny kod). Instrukcja krok po kroku, jak pracować z serwerem proxy, za pomocą języka Go, wyglądałaby następująco:
- Uzyskaj 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 oraz 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 otrzymania danych pogodowych (np. na jutro).
- Utwó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 żądanie do API pogody ===
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: Przeczytaj 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życia serwisu proxy API, po uruchomieniu tego kodu będziesz mógł uzyskać potrzebne dane. Pamiętaj, że pisanie i obsługa kodu w 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, który będzie potrzebny do pisania kodu i parsowania plików JSON, to Visual Studio Code, GoLand lub Sublime Text/Notepad++ (edytory z podświetleniem składni). Dodatkowo potrzebny jest skonfigurowany serwer proxy. I jeszcze linia poleceń (Windows) lub Terminal (MacOS/Linux) do uruchomienia napisanego kodu.
