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.