Junior — Middle
Puteți explica rolul controlerului în structura arhitecturii curate?
sobes.tech AI
Răspuns de la AI
În arhitectura curată, controlerul joacă rolul de intermediar între lumea exterioară (de exemplu, solicitări HTTP) și straturile interne ale aplicației.
Funcțiile principale ale controlerului:
- Primește solicitări intrante.
- Extrage datele necesare din solicitare.
- Apelează cazurile de utilizare sau interactorii corespunzători.
- Formează răspunsul pentru client.
Controlerul nu conține logică de business, el doar direcționează datele și comenzile către părțile necesare ale sistemului.
Exemplu în Go (simplificat):
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, "Utilizator negăsit", http.StatusNotFound)
return
}
json.NewEncoder(w).Encode(user)
}
Aici, controlerul primește solicitarea, apelează logica de business și returnează rezultatul către client.