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