Использование прокси для работы с API
Олександр Л.
11 czerwca 2025
2179
2179
11 czerwca 2025
Interfejs programowania aplikacji (znany również jako API) — to obecnie powszechna praktyka komunikacji z witrynami i aplikacjami. Podczas korzystania z API można łatwo i strukturalnie wymieniać funkcje i dane, integrując proste przepływy pracy i przepływy danych między różnymi witrynami, aplikacjami i systemami. Na przykład, między Twoją witryną a serwerem danych możesz wymieniać taką informację 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ć przeznaczone tylko na określoną maksymalną liczbę zapytań z jednego IP w jednostce czasu, a po przekroczeniu progu Twój IP może zostać zablokowany;
- Możesz otrzymać odmowę dostępu do API z powodu Twojego regionu geograficznego;
- Liczba odwołań do serwera może być ograniczona, i to mocno. Potrzebujesz proxy API, aby wymiana danych nie została przerwana. W praktyce do tego wykorzystuje się automatyzację 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źmiemy na przykład Go, doskonale nadający się do programowania webowego. Pamiętaj, że do stworzenia tego kodu musisz mieć pewne podstawy programowania (wiedza o tym, czym jest kod i jakie zmienne w nim wskazywać). Alternatywnie, zatrudnij specjalistę do wykonania konkretnych zadań.
Automatyzujemy wymianę danych między API a proxy
Załóżmy, że musisz zautomatyzować połączenie proxy-API w celu uzyskania prognozy pogody na jutro z publicznej domeny Weather.com (podajemy to tylko jako przykład, aby później utworzyć czytelny kod). Instrukcja krok po kroku, jak pracować z serwerem proxy, przy użyciu języka 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ę w serwisie WeatherAPI.com, aby uzyskać unikalny klucz API i 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, gdzie days=2 — to data otrzymania prognozy pogody (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 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 podczas tworzenia 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 korzystania z serwisu proxy API po uruchomieniu tego kodu będziesz mógł otrzymać potrzebne dane. Zwróć uwagę, że pisanie i obsługa kodu w dowolnym języku programowania wymaga od Ciebie odpowiedniego środowiska programistycznego. W naszym przykładzie jest to język Go, który należy pobrać instalując odpowiednie oprogramowanie dla Twojego systemu operacyjnego. Edytor tekstu niezbędny do pisania kodu i parsowania plików JSON odpowiedzi to Visual Studio Code, GoLand lub Sublime Text/Notepad++ (edytory z podświetleniem składni). Dodatkowo potrzebujesz skonfigurowanego serwera proxy. I jeszcze wiersza poleceń (Windows) lub terminala (MacOS/Linux) do uruchomienia napisanego kodu.
