Sobes.tech
Junior — Middle

Можете ли да обясните ролята на контролера в структурата на чистата архитектура?

sobes.tech AI

Отговор от AI

В чистата архитектура контролерът играе ролята на посредник между външния свят (например HTTP заявки) и вътрешните слоеве на приложението.

Основните функции на контролера:

  • Приема входящи заявки.
  • Извлича необходимите данни от заявката.
  • Обажда се на съответните случаи на употреба или интерактори.
  • Формира отговор за клиента.

Контролерът не съдържа бизнес логика, той просто насочва данните и командите към нужните части на системата.

Пример на 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, "Потребител не е намерен", http.StatusNotFound)
        return
    }
    json.NewEncoder(w).Encode(user)
}

Тук контролерът получава заявката, извиква бизнес логиката и връща резултата на клиента.