Sobes.tech
Назад к вопросам
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)
}

Здесь контроллер получает запрос, вызывает бизнес-логику и возвращает результат клиенту.