Senior
Hexagonal arxitekturada kiruvchi so'rov handler orqali domen modeligacha qanday ishlov beriladi? Bu arxitektura uchta elementdan iborat: adapter, port va markaziy ilova.
sobes.tech AI
AIdan javob
Hexagonal arxitekturada, kiruvchi so'rov avvalo adapterga (adapter) tushadi, bu tashqi dunyo va ilova o'rtasidagi interfeys vazifasini bajaradi. Masalan, Go'da HTTP handler so'rovni qabul qiladi va uni markaziy ilovaga kirish imkonini beradigan port (port) ga chaqiruvga aylantiradi.
Port biznes mantiqini inkapsulyatsiya qiladi va interaktsiya shartnomalarini belgilaydi. Handler port metodlarini chaqiradi, kerakli ma'lumotlarni o'tkazadi. Markaziy ilova (domen modeli) portdagi ma'lumotlarga asoslanib, mantiqni amalga oshiradi va natijani qaytaradi.
Go'da misol:
// Port
type UserService interface {
CreateUser(name string) error
}
// Adapter (HTTP handler)
func CreateUserHandler(svc UserService) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
name := r.FormValue("name")
err := svc.CreateUser(name)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.WriteHeader(http.StatusCreated)
}
}
Shu tarzda, handler tashqi so'rovni markaziy ilovada (domen modeli) amalga oshiriladigan port chaqiruviga moslashtiradi.