Η εξαγωνική αρχιτεκτονική αποτελείται από τρία στοιχεία: προσαρμογέα, θύρα και κεντρική εφαρμογή. Πώς επεξεργάζεται το εισερχόμενο αίτημα μέσω του handler μέχρι το μοντέλο domain;
sobes.tech AI
Απάντηση από AI
Στην εξαγωνική αρχιτεκτονική, το εισερχόμενο αίτημα φτάνει πρώτα σε έναν προσαρμογέα (adapter), ο οποίος λειτουργεί ως διεπαφή μεταξύ του εξωτερικού κόσμου και της εφαρμογής. Για παράδειγμα, ένας χειριστής HTTP σε Go λαμβάνει το αίτημα και το μετατρέπει σε μια κλήση σε μια πύλη (port), η οποία είναι μια διεπαφή που ορίζει τις διαθέσιμες λειτουργίες για την κεντρική εφαρμογή.
Η πύλη εν encapsulates τη λογική επιχειρήσεων και ορίζει τα συμβόλαια αλληλεπίδρασης. Ο χειριστής καλεί τις μεθόδους της πύλης, περνώντας τα απαραίτητα δεδομένα. Η κεντρική εφαρμογή (μοντέλο τομέα) υλοποιεί τη λογική, βασιζόμενη στα δεδομένα της πύλης, και επιστρέφει το αποτέλεσμα.
Παράδειγμα σε Go:
// Πύλη
type UserService interface {
CreateUser(name string) error
}
// Προσαρμογέας (χειριστής HTTP)
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)
}
}
Έτσι, ο χειριστής προσαρμόζει το εξωτερικό αίτημα σε μια κλήση στην πύλη, η οποία υλοποιείται στην κεντρική εφαρμογή (μοντέλο τομέα).