FastAPI è il nostro banco da lavoro per costruire API moderne, veloci e documentate automaticamente. Lo utilizziamo per creare servizi leggeri che comunicano tra loro.
Evitiamo il "monolito". Ogni servizio deve fare una cosa sola (Single Responsibility Principle).
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)
I servizi vengono distribuiti tramite Docker per garantire che "funzionino sulla mia macchina" e anche in produzione sul server H100.