Sobes.tech
Back to questions
Junior — Middle
86

Можете объяснить роль контроллера в структуре чистой архитектуры?

Companies where asked
СБЕР дейвайсыСБЕР дейвайсы

Answer from AI

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)
}

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