Junior — Middle
Možete li objasniti ulogu kontrolora u strukturi čiste arhitekture?
sobes.tech АИ
Одговор од АИ
У чистој архитектури, контролер игра улогу посредника између спољног света (на пример, 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)
}
Овде, контролер добија захтев, позива пословну логику и враћа резултат клијенту.