⚡ FastAPI & Microservizi: Automazione ad Alte Prestazioni
FastAPI è il nostro banco da lavoro per costruire API moderne, veloci e documentate automaticamente. Lo utilizziamo per creare servizi leggeri che comunicano tra loro.
1. Architettura Modulare
Evitiamo il “monolito”. Ogni servizio deve fare una cosa sola (Single Responsibility Principle).
- Pydantic: Utilizzato per la validazione rigorosa dei dati.
- Async/Await: Per gestire operazioni I/O senza bloccare il server.
2. Template di Base
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
app = FastAPI(title="Geppetto Automation API")
class DeviceStatus(BaseModel):
device_id: str
is_active: bool
load: float
@app.get("/status/{device_id}", response_model=DeviceStatus)
async def get_device_status(device_id: str) -> DeviceStatus:
# Logic to fetch data from Home Assistant or DB
return DeviceStatus(device_id=device_id, is_active=True, load=0.75)
3. Deployment
I servizi vengono distribuiti tramite Docker per garantire che “funzionino sulla mia macchina” e anche in produzione sul server H100.