Introduzione a FastAPI
FastAPI rappresenta una moderna e performante libreria web per la creazione di API con Python 3.6+. Basato su standard Python type hints, FastAPI offre un supporto nativo per le funzionalità asincrone di Python 3.6+, rendendolo estremamente veloce. Creato nel 2018 da Sebastián Ramírez, FastAPI è diventato la scelta preferita di grandi aziende come Uber, Netflix e Microsoft per lo sviluppo delle loro applicazioni.
Caratteristiche di FastAPI
Prestazioni Elevate
Come suggerisce il nome, FastAPI è noto per la sua velocità, posizionandosi tra i framework Python più veloci attualmente disponibili.
Robustezza e Documentazione Interattiva
La robustezza di FastAPI si traduce in codice pronto per la produzione con documentazione interattiva automatica, semplificando il processo di sviluppo e di testing.
Intuitività e Velocità di Sviluppo
Progettato per essere intuitivo, FastAPI offre un supporto completo da parte degli editor e una documentazione chiara, aumentando la velocità di sviluppo del 200%-300%.
Riduzione degli Errori
FastAPI riduce significativamente gli errori indotti, contribuendo a garantire la stabilità del codice.
Compatibilità e Plug-in
Compatibile con gli standard aperti per le API come OpenAPI (precedentemente noto come Swagger) e JSON schema, FastAPI consente la creazione facile di plug-in tramite injection di dipendenze.
Confronto tra Flask e FastAPI
Flask
Flask, un microframework Python, è flessibile, intuitivo e veloce. Tuttavia, la mancanza di validazione dei dati può portare a crash frequenti, e la gestione delle richieste può richiedere tempo.
Casi d'Uso Comuni
Flask è spesso utilizzato per progetti come sistemi di e-commerce, bot per social media, reti sociali e siti web statici.
FastAPI
FastAPI, al contrario, è un framework web moderno e ad alte prestazioni progettato specificamente per la creazione di API.
Casi d'Uso Comuni
FastAPI è comunemente utilizzato per la gestione interna delle crisi, il rilascio di modelli di machine learning e la creazione di account, accessi e autenticazione per le applicazioni web.
Hello World con FastAPI
Per iniziare con FastAPI, diamo uno sguardo a un semplice esempio "Hello World!".
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def root():
return {"message": "Hello World!"}
Per avviare il server, esegui il comando:
uvicorn main:app --reload
Building Blocks di FastAPI
Parametri del Percorso (Path Parameters)
I parametri del percorso consentono di limitare la chiamata API a una singola risorsa. Sono inseriti tra parentesi graffe {} e precedono la stringa di query.
from fastapi import FastAPI
app = FastAPI()
@app.get("/courses/{course_name}")
def read_course(course_name):
return {"course_name": course_name}
Parametri di Query (Query Parameters)
I parametri di query sono opzionali e vengono interpretati automaticamente in FastAPI. Sono definiti come parametri di funzione che non fanno parte dei parametri del percorso.
from fastapi import FastAPI
app = FastAPI()
course_items = [{"course_name": "Python"}, {"course_name": "SQLAlchemy"}, {"course_name": "NodeJS"}]
@app.get("/courses/")
def read_courses(start: int, end: int):
return course_items[start : start + end]
Corpo della Richiesta (Request Body)
Il corpo della richiesta è dati inviati dal client all'API. In FastAPI, è possibile dichiararlo utilizzando modelli Pydantic.
from typing import Optional
from fastapi import FastAPI
from pydantic import BaseModel
class Course(BaseModel):
name: str
description: Optional[str] = None
price: int
author: Optional[str] = None
app = FastAPI()
@app.post("/courses/")
def create_course(course: Course):
return course
Prossimi Passi con FastAPI
Congratulazioni per i primi passi con FastAPI! Per approfondire la conoscenza del framework, esplora argomenti come elaborazione parallela, distribuzione dell'API su cloud, gestione di parametri predefiniti e opzionali, e altro ancora.
Per una formazione completa su come costruire un'API REST con Python e distribuirla su Microsoft Azure, consulta il corso su .
Conclusioni
FastAPI si presenta come una scelta eccellente per lo sviluppo rapido e performante di API con Python. Con le sue caratteristiche distintive e la crescente adozione da parte di importanti aziende tecnologiche, FastAPI si posiziona come un framework di punta nel panorama delle librerie web per Python. Inizia oggi stesso il tuo percorso di apprendimento con FastAPI e resta al passo con le ultime novità nella creazione di API performanti e scalabili.