0Pricing
Learn AI with Python · Lekcja

Podstawy REST API do gromadzenia danych

HTTP GET/POST, nagłówki, uwierzytelnianie (klucz API, Bearer) i parsowanie JSON za pomocą requests.

Podstawy REST API do gromadzenia danych to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Dlaczego interfejsy API mają znaczenie dla AI

Modele są tylko tak dobre, jak dane, na których je oparto. Internetowe interfejsy API pozwalają pobierać na żądanie aktualne, uporządkowane dane — pogodę, ceny, wpisy z mediów społecznościowych i publiczne zbiory danych — zamiast polegać na jednym statycznym pliku.

W tym kursie używane są Python oraz popularna biblioteka requests do pobierania i przechowywania tych danych.

Czym jest REST API

REST API udostępnia zasoby za pośrednictwem protokołu HTTP. Wysyłasz żądanie do adresu URL (punktu końcowego), a w odpowiedzi otrzymujesz dane, zwykle w formacie JSON.

Najważniejsze metody HTTP:

  • GET — odczyt danych
  • POST — tworzenie danych
  • PUT/PATCH — aktualizowanie danych
  • DELETE — usuwanie danych

Do zbierania danych używa się głównie GET.

Pierwsze żądanie GET

requests.get(url) wysyła żądanie GET i zwraca obiekt Response. Odpowiedź zawiera kod stanu, nagłówki i treść.

import requests

resp = requests.get("https://api.example.com/users")
print(resp.status_code)   # 200
print(resp.text[:200])    # raw body as a string

Sprawdzanie response.status_code

Kod stanu informuje, czy żądanie zakończyło się powodzeniem:

  • 200 OK
  • 301/302 przekierowanie
  • 400 nieprawidłowe żądanie
  • 401/403 problem z uwierzytelnianiem
  • 404 nie znaleziono
  • 429 przekroczono limit żądań
  • 500 błąd serwera
resp = requests.get(url)
if resp.status_code == 200:
    print("Success")
else:
    print("Failed:", resp.status_code)

Parsowanie JSON za pomocą response.json()

Większość interfejsów API zwraca dane w formacie JSON. response.json() automatycznie parsuje treść do postaci słowników i list języka Python.

Nie parsuj JSON-a ręcznie — .json() zajmuje się tym i zgłasza czytelny błąd, jeśli treść nie zawiera prawidłowego JSON-a.

resp = requests.get("https://api.example.com/users/1")
data = resp.json()
print(data["name"])
print(data["email"])

Wysyłanie parametrów zapytania za pomocą params

Filtruj żądania i konfiguruj je za pomocą parametrów zapytania. Przekaż słownik do params, a requests zbuduje za Ciebie adres URL, zajmując się kodowaniem.

W przykładzie adres URL będzie zawierać ?city=London&units=metric.

params = {"city": "London", "units": "metric"}
resp = requests.get("https://api.example.com/weather", params=params)
print(resp.url)
print(resp.json())

Wysyłanie nagłówków

Nagłówki przenoszą metadane, takie jak typ treści, user agent albo klucz lub token API. Przekaż je jako słownik do headers.

Wiele interfejsów API wymaga nagłówka Authorization, aby przyznać dostęp.

headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "User-Agent": "my-data-collector/1.0",
}
resp = requests.get("https://api.example.com/data", headers=headers)
print(resp.json())

raise_for_status() dla niezawodnego kodu

Zamiast ręcznie sprawdzać kody wywołaj resp.raise_for_status(). Dla każdej odpowiedzi 4xx lub 5xx zgłasza on wyjątek HTTPError, dzięki czemu błędy są natychmiast widoczne.

Umieść to wywołanie w bloku try/except, aby obsługiwać błędy w kontrolowany sposób.

import requests

try:
    resp = requests.get(url, timeout=10)
    resp.raise_for_status()
    data = resp.json()
except requests.HTTPError as e:
    print("HTTP error:", e)
except requests.RequestException as e:
    print("Network error:", e)

Zawsze ustawiaj limit czasu

Bez parametru timeout zawieszony serwer może zablokować skrypt na zawsze. Zawsze go przekazuj, podając wartość w sekundach.

W pętlach zbierających dane i wysyłających żądania do tysięcy punktów końcowych brak limitu czasu jest częstą przyczyną zawieszania się zadań.

resp = requests.get(url, timeout=10)   # give up after 10 seconds

Ponowne wykorzystywanie połączeń za pomocą Session

Obiekt requests.Session ponownie wykorzystuje bazowe połączenie TCP między żądaniami i pozwala ustawić nagłówki tylko raz. Przy wielu wywołaniach do tego samego hosta jest to znacznie szybsze rozwiązanie.

import requests

session = requests.Session()
session.headers.update({"Authorization": "Bearer YOUR_TOKEN"})

for uid in [1, 2, 3]:
    resp = session.get(f"https://api.example.com/users/{uid}")
    print(resp.json()["name"])

session.close()

Czysta funkcja pomocnicza do pobierania danych

Umieść ten schemat w funkcji wielokrotnego użytku: skonfiguruj sesję, zastosuj limit czasu, zgłaszaj błędy i zwracaj sparsowany JSON.

W następnych lekcjach rozbudujesz tę funkcję pomocniczą o stronicowanie i przechowywanie danych.

def fetch_json(session, url, params=None):
    resp = session.get(url, params=params, timeout=10)
    resp.raise_for_status()
    return resp.json()

Szybkie sprawdzenie: niezawodne żądania

Chcesz, aby Twój kod automatycznie zgłaszał wyjątek po otrzymaniu odpowiedzi 404 lub 500.

Podsumowanie: podstawy REST API

Potrafisz już zbierać dane za pośrednictwem protokołu HTTP:

  • requests.get(url, params=..., headers=...) do wysyłania żądań
  • response.status_code i raise_for_status() do wykrywania błędów
  • response.json() do parsowania treści
  • timeout do zapobiegania zawieszaniu się programu
  • requests.Session do ponownego wykorzystywania połączeń i nagłówków

Następny temat: zbieranie zbiorów danych obejmujących wiele stron.

Często zadawane pytania

Czy lekcja „Podstawy REST API do gromadzenia danych” jest bezpłatna?

Tak — pełny tekst „Podstawy REST API do gromadzenia danych” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Co nauczysz się w „Podstawy REST API do gromadzenia danych”?

HTTP GET/POST, nagłówki, uwierzytelnianie (klucz API, Bearer) i parsowanie JSON za pomocą requests. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?

Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Podstawy REST API do gromadzenia danych”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?

Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podstawy REST API do gromadzenia danych
  2. Stronicowanie i gromadzenie dużych zbiorów danych
  3. Efektywne przechowywanie zebranych danych
  4. Praca z publicznymi interfejsami API danych
← Powrót do Learn AI with Python