Junior — Middle
Puoi spiegare il ruolo del controller nella struttura dell'architettura pulita?
sobes.tech AI
Risposta dell'AI
Nell'architettura pulita, il controller funge da intermediario tra il mondo esterno (ad esempio, richieste HTTP) e gli strati interni dell'applicazione.
Funzioni principali del controller:
- Riceve le richieste in ingresso.
- Estrae i dati necessari dalla richiesta.
- Chiama i casi d'uso o gli interattori appropriati.
- Forma la risposta per il cliente.
Il controller non contiene logica di business, si limita a indirizzare dati e comandi alle parti appropriate del sistema.
Esempio in Go (semplificato):
func UserController(w http.ResponseWriter, r *http.Request) {
userID := r.URL.Query().Get("id")
user, err := userUseCase.GetUserByID(userID)
if err != nil {
http.Error(w, "Utente non trovato", http.StatusNotFound)
return
}
json.NewEncoder(w).Encode(user)
}
Qui, il controller riceve la richiesta, chiama la logica di business e restituisce il risultato al cliente.