Использование прокси для работы с API
Олександр Л.
11 czerwca 2025
2081
2081
11 czerwca 2025
Interfejs programowania aplikacji (znany również jako API) — to obecnie powszechna praktyka komunikacji z witrynami i aplikacjami. Podczas używania API można łatwo i strukturalnie wymieniać funkcje i dane, bezproblemowo integrując procesy robocze i przepływy danych między różnymi witrynami, aplikacjami i systemami. Na przykład, między Twoją stroną a serwerem danych możesz wymieniać informacje takie jak kursy walut, prognozy pogody, aktualizacje cen produktów i wiele innych. Serwer proxy API do obsługi API jest potrzebny z kilku powodów:
- API może być przystosowane tylko na określoną maksymalną liczbę żądań z jednego adresu IP w jednostce czasu, a po przekroczeniu progu Twój IP może zostać zablokowany;
- Może być odmowa dostępu do API z powodu Twojego regionu geograficznego;
- Liczba odwołań do serwera może być mocno ograniczona. Potrzebujesz proxy API, aby wymiana danych nie została przerwana. 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źmiemy jako przykład Go, doskonale nadający się do programowania webowego. Pamiętaj, że do tworzenia kodu musisz mieć pewne podstawy programowania (wiedzieć, czym jest kod i jakie zmienne się w nim używa). Alternatywnie, zatrudnij specjalistę do wykonania konkretnych zadań.
Automatyzujemy wymianę danych między API a proxy
Załóżmy, że chcesz zautomatyzować współpracę proxy-API, aby uzyskać prognozę pogody na jutro z domeny publicznej Weather.com (co podajemy wyłącznie jako przykład, aby 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 serwera 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, na przykład https://api.weatherapi.com/v1/forecast.json?key=YOUR_API_KEY&q=Kyiv&days=2, gdzie days=2 — to data pobrania prognozy (np. na jutro).
- Utwórz kod żądania, 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: Ustawienie 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 żą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: Wczytaj i wyświetl 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ł otrzymać potrzebne dane. Zwróć uwagę, że pisanie i obsługa kodu w dowolnym języku programowania wymaga środowiska programistycznego do pracy z kodem. W naszym przykładzie jest to język Go, który trzeba zainstalować odpowiednim oprogramowaniem dostosowanym do Twojego systemu operacyjnego. Edytor tekstu, który będzie Ci potrzebny do pisania kodu i parsowania plików JSON, to Visual Studio Code, GoLand lub Sublime Text/Notepad++ (edytory z podświetleniem składni). Konieczne jest także skonfigurowanie serwera proxy. Dodatkowo, potrzebna jest linia poleceń (Windows) lub Terminal (MacOS/Linux), by uruchomić napisany kod.
