2.1 KiB
API Server - Regole e Skill Set
Queste regole definiscono il comportamento per tutti gli sviluppi futuri su questa repository, al fine di mantenere l'architettura pulita e scalabile.
-
Dependency Injection Obbligatoria (IoC) Non utilizzare mai chiamate a metodi statici per accedere a servizi o configurazioni (es. evitare
Config::get()oHttpClient::get()). Tutte le dipendenze devono essere iniettate tramite costruttore. Il container inbootstrap.phpprovvederà all'autowiring automatico. -
Namespace e Struttura dei Controller Tutti i nuovi Controller devono essere posizionati all'interno della cartella relativa alla loro versione (es.
src/Api/Controllers/V1/) e devono avere il namespace corretto (es.namespace Api\Controllers\V1;). Questo permette alRouterdi mapparli automaticamente partendo dalle route versionate (es./v1/risorsa). -
Risposte HTTP Standard Non utilizzare mai funzioni di output diretto (come
echo,printoheader()) all'interno dei Controller. Usa sempre l'oggettoResponse(iniettato come parametro o generato internamente) e chiama il metodo$res->json($payload, $statusCode)per uniformare l'output. -
Gestione Errori e Sicurezza Non includere mai stack trace o dettagli sensibili (segreti, stringhe di connessione) nelle risposte JSON d'errore o nei log generici. Lascia che le eccezioni vengano catturate dal Global Exception Handler o usa il
LoggerInterfaceper tracciare i problemi a livello server. -
Validazione dell'Input Assicurati sempre di validare l'input proveniente da
$req->body()o dai parametri URL prima di processarlo con la business logic applicativa. (Consigliato l'uso di DTO). -
Routing API e prefissi di versione Le route devono essere registrate senza il prefisso
/apie senza il prefisso di versione (es. usare/usersinvece di/api/userso/api/v1/users). Il router deve normalizzare i percorsi in ingresso rimuovendo il prefisso/apiprima di confrontarli con le route registrate, così richieste come/api/userse/api/v1/userscontinuano a funzionare.