Sobes.tech
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)
}

Овде, контролер добија захтев, позива пословну логику и враћа резултат клијенту.