Workshop

FastAPI: from Hello World to Production

LanguageItalian
Audience levelBeginner
Elevator pitch

In questo Workshop esploriamo FastAPI e un approccio moderno allo sviluppo con Python; Partiremo da come progettare le API, strutturare il progetto in larga scala, utilizzare routing, validazione, integrazione con database, processi paralleli fino al deploy in produzione.

Abstract

FastAPI sta rapidamente diventando uno dei framework preferiti per lo sviluppo di API grazie alla sua velocità, semplicità e integrazione con strumenti moderni. Questo workshop intensivo di 3 ore è pensato per sviluppatori che vogliono padroneggiare FastAPI e imparare a progettare, costruire e distribuire applicazioni API pronte per l’ambiente di produzione.

Obiettivi del workshop Al termine del workshop, i partecipanti saranno in grado di:

  • Progettare API ben strutturate e facilmente scalabili
  • Comprendere le best practice per organizzare il codice in un progetto FastAPI
  • Integrare routing e gestire parametri complessi
  • Connettere un database con SQLAlchemy e gestire le migrazioni con Alembic
  • Validare dati in ingresso e in uscita con Pydantic per garantire robustezza e sicurezza
  • Gestire task asincroni utilizzando Celery per operazioni di backend efficienti
  • Configurare un ambiente di sviluppo locale con Docker
  • Eseguire il deploy dell’applicazione in ambienti di produzione

Struttura del workshop Il workshop è suddiviso nei seguenti moduli:

  1. Introduzione a fastAPI

    • Panoramica del framework FastAPI: vantaggi e caratteristiche principali
    • Creazione della prima API con un endpoint “/hello-world”
  2. API Design e Struttura del Progetto

    • Principi di design per API RESTful
    • Creazione di una struttura di progetto modulare e scalabile
  3. Routing e Gestione dei Parametri

    • Implementazione di endpoint con parametri path, query e body
    • Utilizzo di annotazioni type-hinting per la gestione dei parametri
    • Upload e gestione dei file
    • Come scrivere la documentazione per ogni route
  4. Validazione e Pydantic

    • Introduzione a Pydantic per la definizione e validazione dei dati.
    • Creazione di schemi per richieste e risposte.
  5. Gestione del Database con SQLAlchemy e Alembic

    • Connessione a un database e definizione di modelli ORM con SQLAlchemy
    • Gestione delle migrazioni di schema del database con Alembic
  1. Task Async con Celery

    • Configurazione di Celery per la gestione di task asincroni
    • Utilizzo di broker come Redis o RabbitMQ per la comunicazione tra servizi
  2. Sviluppo Locale con Docker

    • Configurazione di un ambiente di sviluppo isolato con Docker
    • Utilizzo di docker-compose per orchestrare database, broker e applicazione
  3. Deploy in Produzione

    • Preparazione del progetto per il deploy
    • Esempi di deploy su piattaforma cloud AWS e server on-premise.
    • Configurazione di sistemi di logging e monitoring

Metodo didattico Il workshop prevede un mix di spiegazioni teoriche e attività pratiche. Ogni modulo include esercizi hands-on per applicare i concetti appresi e un progetto guidato che crescerà progressivamente durante le 3 ore.

Destinatari Questo workshop è ideale per sviluppatori Python di livello intermedio che vogliono esplorare lo sviluppo di API con FastAPI e acquisire competenze utili per portare applicazioni web dal locale alla produzione.

Prerequisiti

  • Conoscenza base di Python.
  • Familiarità con i concetti di API RESTful.
  • Nozioni di base su Docker (facoltative ma utili).
TagsAPIs, Best Practice, Web Frameworks
Participant

Gianfranco Castro

As a Data Architecture Senior Manager, I lead the strategic design, implementation, and governance of data systems and frameworks that empower organizations to unlock the full potential of their data assets. My role bridges the gap between business strategy and technology, ensuring scalable, secure, and efficient data solutions align with enterprise goals.

I am currently working on: A Generative Business Intelligence (BI) Architect and Analyst is a role that combines traditional BI skills with a deep understanding of AI and machine learning techniques. This role focuses on designing and implementing advanced BI solutions that can generate insights, predictions, and recommendations autonomously.