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)
}
აქ, კონტროლერი იღებს მოთხოვნას, იძახის ბიზნეს ლოგიკას და აბრუნებს შედეგს მომხმარებელს.