Junior — Middle
Vai jūs varat izskaidrot kontroliera lomu tīras arhitektūras struktūrā?
sobes.tech AI
Atbilde no AI
Tīrā arhitektūrā kontrolieris spēlē starpnieka lomu starp ārējo pasauli (piemēram, HTTP pieprasījumiem) un lietojumprogrammas iekšējiem slāņiem.
Galvenās kontroliera funkcijas:
- Saņem ienākošos pieprasījumus.
- Izvelk nepieciešamos datus no pieprasījuma.
- Izsauc atbilstošos lietošanas gadījumus vai interaktorus.
- Sagatavo atbildi klientam.
Kontrolieris nesatur biznesa loģiku, tas tikai virza datus un komandas uz vajadzīgajām sistēmas daļām.
Piemērs Go valodā (vienkāršots):
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, "Lietotājs nav atrasts", http.StatusNotFound)
return
}
json.NewEncoder(w).Encode(user)
}
Šeit kontrolieris saņem pieprasījumu, izsauc biznesa loģiku un atgriež rezultātu klientam.