Назад к вопросам
СБЕР дейвайсы
Junior — Middle
84
Можете объяснить роль контроллера в структуре чистой архитектуры?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В чистой архитектуре контроллер играет роль посредника между внешним миром (например, HTTP-запросами) и внутренними слоями приложения.
Основные функции контроллера:
- Принимает входящие запросы.
- Извлекает необходимые данные из запроса.
- Вызывает соответствующие случаи использования (use cases) или интеракторы.
- Формирует ответ для клиента.
Контроллер не содержит бизнес-логики, он лишь направляет данные и команды в нужные части системы.
Пример на Go (упрощённый):
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, "User not found", http.StatusNotFound)
return
}
json.NewEncoder(w).Encode(user)
}
Здесь контроллер получает запрос, вызывает бизнес-логику и возвращает результат клиенту.