Sobes.tech
Senior

Šesťuholníková architektúra pozostáva zo štyroch prvkov: adaptér, port a centrálna aplikácia. Ako sa spracováva prichádzajúca požiadavka cez handler až po doménový model?

sobes.tech AI

Odpoveď od AI

V hexagonálnej architektúre najprv príde vstupná požiadavka do adaptéra, ktorý slúži ako rozhranie medzi vonkajším svetom a aplikáciou. Napríklad, HTTP handler v Go prijme požiadavku a premení ju na volanie portu, ktorý je rozhraním definujúcim operácie dostupné pre centrálnu aplikáciu.

Port inkapsuluje obchodnú logiku a definuje zmluvy o interakcii. Handler volá metódy portu, odovzdávajúc potrebné údaje. Centrálnu aplikáciu (domenový model) implementuje logiku na základe údajov z portu a vracia výsledok.

Príklad v Go:

// Port
type UserService interface {
    CreateUser(name string) error
}

// Adaptér (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)
    }
}

Takto, handler prispôsobí externú požiadavku volaniu portu, ktorý je implementovaný v centrálnej aplikácii (domenový model).