0Pricing
Learn AI with Python · Lezione

Fondamenti delle API REST per la raccolta dei dati

HTTP GET/POST, header, autenticazione (API key, Bearer) e parsing JSON con requests.

Fondamenti delle API REST per la raccolta dei dati è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.

Perché le API sono importanti per l'IA

I modelli sono buoni quanto i dati su cui si basano. Le API web consentono di raccogliere dati aggiornati e strutturati su richiesta — dati meteorologici, prezzi, post sui social, dataset pubblici — invece di dipendere da un unico file statico.

Questo corso utilizza Python e la popolare libreria requests per recuperare e salvare questi dati.

Che cos'è una REST API?

Una REST API espone risorse tramite HTTP. Si invia una richiesta a un URL (endpoint) e si ricevono dati, di solito in formato JSON.

I principali metodi HTTP:

  • GET — leggere dati
  • POST — creare dati
  • PUT/PATCH — aggiornare
  • DELETE — eliminare

Per la raccolta dei dati si utilizza soprattutto GET.

Una prima richiesta GET

requests.get(url) invia una richiesta GET e restituisce un oggetto Response. La risposta contiene lo stato, gli header e il corpo.

import requests

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

Controllare response.status_code

Il codice di stato indica se la richiesta è andata a buon fine:

  • 200 OK
  • 301/302 reindirizzamento
  • 400 richiesta non valida
  • 401/403 problema di autenticazione
  • 404 risorsa non trovata
  • 429 limite di richieste raggiunto
  • 500 errore del server
resp = requests.get(url)
if resp.status_code == 200:
    print("Success")
else:
    print("Failed:", resp.status_code)

Analizzare JSON con response.json()

La maggior parte delle API restituisce JSON. response.json() analizza automaticamente il corpo trasformandolo in dizionari e liste Python.

Non analizzi JSON manualmente: .json() se ne occupa e genera un errore chiaro se il corpo non contiene JSON valido.

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

Inviare parametri di query con params

Filtri e configuri le richieste utilizzando i parametri di query. Passi un dizionario a params e requests costruisce l'URL per Lei, gestendo la codifica.

Nell'URL, l'esempio diventa ?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())

Inviare gli header

Gli header trasportano metadati come il tipo di contenuto, uno user agent oppure una chiave o un token API. Li passi come dizionario a headers.

Molte API richiedono un header Authorization per consentire l'accesso.

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() per un codice robusto

Invece di controllare manualmente i codici, chiami resp.raise_for_status(). Il metodo genera un HTTPError per qualsiasi risposta 4xx o 5xx, facendo emergere subito gli errori.

Lo racchiuda in try/except per gestire gli errori in modo appropriato.

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)

Impostare sempre un timeout

Senza un timeout, un server bloccato può lasciare lo script in attesa per sempre. Lo specifichi sempre, in secondi.

Nei cicli di raccolta dati che contattano migliaia di endpoint, la mancanza di un timeout è una causa comune dei processi bloccati.

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

Riutilizzare le connessioni con Session

requests.Session riutilizza la connessione TCP sottostante tra le richieste e consente di impostare gli header una sola volta. Per molte chiamate allo stesso host è molto più veloce.

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()

Un helper pulito per il recupero dei dati

Racchiuda il pattern in una funzione riutilizzabile: imposti una sessione, applichi un timeout, generi un errore in caso di problemi e restituisca il JSON analizzato.

Nelle lezioni successive utilizzerà questo helper per la paginazione e il salvataggio.

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

Controllo rapido: richieste robuste

Si desidera che il codice generi automaticamente un'eccezione in caso di risposta 404 o 500.

Riepilogo: fondamenti delle REST API

Ora può raccogliere dati tramite HTTP:

  • requests.get(url, params=..., headers=...) per effettuare richieste
  • response.status_code e raise_for_status() per rilevare gli errori
  • response.json() per analizzare il corpo
  • timeout per evitare attese indefinite
  • requests.Session per riutilizzare connessioni e header

Prossimo argomento: raccogliere dataset distribuiti su molte pagine.

Domande Frequenti

La lezione «Fondamenti delle API REST per la raccolta dei dati» è gratuita?

Sì — il testo completo di «Fondamenti delle API REST per la raccolta dei dati» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.

Cosa imparerò in «Fondamenti delle API REST per la raccolta dei dati»?

HTTP GET/POST, header, autenticazione (API key, Bearer) e parsing JSON con requests. Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Learn AI with Python?

Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Fondamenti delle API REST per la raccolta dei dati»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?

Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Fondamenti delle API REST per la raccolta dei dati
  2. Paginazione e raccolta di grandi dataset
  3. Archiviazione efficiente dei dati raccolti
  4. Utilizzo delle API pubbliche per i dati
← Torna a Learn AI with Python