Sobes.tech
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.