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

აქ, კონტროლერი იღებს მოთხოვნას, იძახის ბიზნეს ლოგიკას და აბრუნებს შედეგს მომხმარებელს.