FastAPI
FastAPI è un framework web moderno e ad alte prestazioni per la costruzione di API (interfacce di programmazione delle applicazioni) con Python 3.8 e versioni successive.
È progettato per essere facile da usare e apprendere, offrendo al contempo velocità di esecuzione paragonabili a quelle di Node.js e Go, grazie all'utilizzo di librerie sottostanti ottimizzate e al supporto nativo per la programmazione asincrona (async/await).
Caratteristica distintiva di FastAPI è il suo utilizzo intensivo dei type hint (annotazioni di tipo) standard di Python per definire, validare e documentare automaticamente i dati in ingresso e in uscita dalle API.
Storia
[modifica | modifica wikitesto]FastAPI è stato creato da Sebastián Ramírez e rilasciato pubblicamente per la prima volta alla fine del 2018. L'obiettivo del creatore era combinare le migliori caratteristiche di diversi framework esistenti: la semplicità d'uso di Flask, le prestazioni di framework asincroni moderni e una robusta validazione dei dati, sfruttando le nuove funzionalità introdotte nelle versioni recenti di Python.
Il framework ha rapidamente guadagnato popolarità nella comunità degli sviluppatori, venendo adottato da grandi aziende tecnologiche per servizi di backend ad alto traffico e applicazioni di intelligenza artificiale.[1]
Caratteristiche tecniche
[modifica | modifica wikitesto]FastAPI non è un framework monolitico, ma si basa su due componenti fondamentali dell'ecosistema Python moderno:
- **Starlette**: Per le funzionalità web di base. Starlette è un framework ASGI (Asynchronous Server Gateway Interface) leggero che gestisce il routing delle richieste, il supporto per WebSocket e la gestione della concorrenza asincrona, fornendo le fondamenta per le alte prestazioni di FastAPI.
- **Pydantic**: Per la validazione dei dati. FastAPI usa i modelli di Pydantic per definire la struttura dei dati attesi nelle richieste (es. JSON body, parametri di query) e serializzare i dati nelle risposte. Pydantic garantisce che i dati siano del tipo corretto a runtime, riducendo significativamente i bug.[2]
Documentazione automatica
[modifica | modifica wikitesto]Una delle funzionalità più apprezzate di FastAPI è la generazione automatica di documentazione interattiva per le API. Basandosi sugli standard OpenAPI (precedentemente noto come Swagger) e JSON Schema, il framework genera senza configurazione aggiuntiva:
- Un'interfaccia utente interattiva basata su **Swagger UI**, che permette di testare le API direttamente dal browser.
- Una documentazione alternativa basata su **ReDoc**.
Voci correlate
[modifica | modifica wikitesto]Note
[modifica | modifica wikitesto]- ↑ (EN) Stack Overflow Developer Survey 2023: Web frameworks and technologies, su Stack Overflow. URL consultato il 28 dicembre 2023.
- ↑ (EN) Alternatives, Inspiration and Comparisons, su FastAPI Documentation. URL consultato il 28 dicembre 2023.
Collegamenti esterni
[modifica | modifica wikitesto]- Sito ufficiale, su fastapi.tiangolo.com.
- Repository sorgenti di FastAPI, su github.com.