Cosa sono le API REST?
Un'API REST è essenzialmente un modo per comunicare con un server remoto usando il protocollo HTTP. Quando fai una richiesta, il server risponde con dati, solitamente in formato JSON. Non è complicato — è come fare domande e ricevere risposte strutturate.
Le API REST seguono principi semplici. Usi HTTP (GET, POST, PUT, DELETE) per dire al server cosa vuoi fare. Il server elabora la tua richiesta e ti restituisce i dati. È tutto qui. La bellezza delle API REST è che puoi usarle da qualsiasi linguaggio di programmazione, incluso Python.
Metodi HTTP Comuni: GET (recupera dati), POST (invia dati), PUT (aggiorna dati), DELETE (cancella dati). Inizierai soprattutto con GET e POST.
Installare e Configurare
Prima di tutto, avrai bisogno della libreria `requests`. È la scelta migliore per lavorare con le API REST in Python. Installarla è semplicissimo — basta una riga nel terminale. Se hai Python installato, avrai già `pip`, il gestore di pacchetti.
pip install requests
Una volta installata, puoi iniziare subito. Non c'è configurazione complessa. Importa la libreria nel tuo script Python e sei pronto. La documentazione di requests è eccellente — troverai tutto quello che ti serve lì.
La Tua Prima Richiesta
Fare una richiesta GET è straordinariamente semplice. Ecco cosa succede: specifichi un URL, requests lo raggiunge, il server risponde. Tutto in tre righe di codice. Usiamo un'API pubblica gratuita per imparare — JSONPlaceholder offre dati fake perfetti per praticare.
import requests
response = requests.get('https://jsonplaceholder.typicode.com/posts/1')
data = response.json()
print(data)
Cosa succede qui? requests.get() invia una richiesta HTTP GET all'URL. Il server risponde con i dati del primo post. Chiami .json() per convertire la risposta in un dizionario Python — perfetto per elaborare i dati. È così che inizia tutto.
Comprendere la Risposta
Una risposta JSON è semplicemente un dizionario Python. Contiene chiavi e valori. Nel nostro esempio, avrai `userId`, `id`, `title`, e `body`. Accedi ai valori come faresti con qualsiasi dizionario: `data['title']`. Non c'è nulla di misterioso — è Python puro.
Gestire gli Errori (La Parte Importante)
Non tutte le richieste vanno a buon fine. A volte la connessione si interrompe. A volte l'API non risponde. A volte fai un errore nell'URL. È qui che la gestione degli errori diventa critica. Se non gestisci gli errori, il tuo script si arresterà bruscamente.
Codice di Stato 404
La risorsa non esiste. Hai usato l'URL sbagliato o l'elemento è stato eliminato.
Codice di Stato 500
Errore del server. Non è colpa tua — il server ha un problema. Riprova più tardi.
Timeout
La risposta impiega troppo tempo. La connessione è lenta o il server è sovraccarico.
Codice di Stato 401
Non autorizzato. Ti serve un'API key o un token di autenticazione valido.
Ecco come gestire questi problemi correttamente. Usa try/except per catturare eccezioni. Controlla il codice di stato della risposta. Se è 200, sei a posto. Se è diverso, hai un problema da affrontare.
try:
response = requests.get(url, timeout=5)
response.raise_for_status()
data = response.json()
except requests.exceptions.Timeout:
print("Timeout: riprova più tardi")
except requests.exceptions.HTTPError:
print(f"Errore HTTP: {response.status_code}")
Suggerimenti Pratici per Iniziare
Ecco cosa ho imparato facendo questo da anni. Questi consigli ti faranno risparmiare tempo e frustrazione.
Gestisci le API Keys
Non inserire mai le tue chiavi API direttamente nel codice. Usale da variabili d'ambiente o file .env. Se condividi il codice, non esponi accidentalmente le tue credenziali.
Imposta Timeout
Sempre. Se l'API non risponde in 5 secondi, probabilmente c'è un problema. Usa `timeout=5` nelle tue richieste. Non vuoi che il tuo script si blocchi indefinitamente.
Controlla i Rate Limits
La maggior parte delle API ha limiti — quante richieste puoi fare al minuto. Leggi la documentazione. Se superi il limite, verrai bloccato temporaneamente. Aggiungi ritardi tra le richieste se necessario.
Usa Headers Personalizzati
Alcune API richiedono headers specifici. Aggiungi un User-Agent decente. Molti server rifiutano richieste da script senza un User-Agent identificabile.
Valida il JSON
Non assumere che il JSON sia sempre valido. Usa `try` intorno a `response.json()`. Se la risposta non è JSON valido, il tuo codice lo farà sapere subito.
Leggi la Documentazione
Seriamente. Ogni API è diversa. Passerai meno tempo se capisci come funziona prima di scrivere il codice. La documentazione ti dirà esattamente cosa aspettarsi.
Conclusione
Iniziare con le API REST e Python non è complicato. Installi requests, fai una richiesta GET, gestisci gli errori. Sono solo tre passaggi. La parte difficile arriva dopo — quando devi integrare le API nel tuo progetto reale, gestire l'autenticazione complessa, e ottimizzare le prestazioni. Ma per iniziare? È davvero semplice.
Non aspettarti di capire tutto al primo tentativo. Scrivi codice. Fallo fallire. Correggi gli errori. Capirai di più ogni volta. È così che impari davvero. Prendi un'API pubblica come JSONPlaceholder, gioca con le richieste, sperimenta. Dopo un paio d'ore, avrai la sicurezza necessaria per usare le API vere nei tuoi progetti.
Nota Importante
Questo articolo è un materiale educativo progettato per insegnarti i fondamenti delle API REST e Python. Non è consulenza tecnica professionale. Le API e le librerie cambiano nel tempo — le informazioni qui potrebbero non essere sempre attuali. Controlla sempre la documentazione ufficiale della libreria requests e dell'API specifica che stai usando. Quando costruisci applicazioni in produzione, assicurati di implementare misure di sicurezza appropriate, gestione robusta degli errori, e segui le migliori pratiche della tua organizzazione.