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)
}
Тук контролерът получава заявката, извиква бизнес логиката и връща резултата на клиента.