Sobes.tech
Junior — Middle

Czy możesz wyjaśnić rolę kontrolera w strukturze czystej architektury?

sobes.tech AI

Odpowiedź od AI

W czystej architekturze kontroler pełni rolę pośrednika między światem zewnętrznym (np. żądaniami HTTP) a wewnętrznymi warstwami aplikacji.

Główne funkcje kontrolera:

  • Przyjmuje nadchodzące żądania.
  • Wydobywa potrzebne dane z żądania.
  • Wywołuje odpowiednie przypadki użycia lub interaktory.
  • Tworzy odpowiedź dla klienta.

Kontroler nie zawiera logiki biznesowej, jedynie kieruje dane i polecenia do odpowiednich części systemu.

Przykład w Go (uproszczony):

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, "Nie znaleziono użytkownika", http.StatusNotFound)
        return
    }
    json.NewEncoder(w).Encode(user)
}

Tutaj kontroler otrzymuje żądanie, wywołuje logikę biznesową i zwraca wynik klientowi.