Questo è un vero codice di produzione, e penso che ciò che ho spogliato sia davvero irrilevante per la domanda. (Se ho torto sono sicuro che verrò corretto.)
Questo è un oggetto richiesta ricevuto da un'applicazione API Web .NET. La nostra applicazione ne ha dozzine e ognuna ha un metodo Handle()
.
Non sono lo sviluppatore di API Web più esperto, ma a me sembra non funzionare. Mi sembra che un controller debba gestire una richiesta o delegarla a un orchestratore, ma per una richiesta di "gestione" stessa sembra una chiara violazione dell'SRP. Sembra anche strano iniettare le dipendenze in una classe che dovrebbe essere solo un contenitore per i dati.
Questo è per la mia comprensione. Non sto chiedendo a nessuno di risolvere una discussione. Il consulente che ha scritto questo è andato avanti. Lo sono anch'io. Ha detto che questo era il "nuovo paradigma" per la scrittura di API Web. Sto solo cercando di capire - mi sto perdendo qualcosa, o è questo un modello comune per lo sviluppo di API Web?
Grazie
public class GetUserRequest
{
IUserRepository _userRepository;
IActiveDirectoryRepository _activeDirectoryRepository;
IMapper _mapper;
IAccountRepository _accountRepository;
public GetUserRequest(IUserRepository userRepository, IMapper mapper, IAccountRepository accountRepository, IActiveDirectoryRepository activeDirectoryRepository)
{
_userRepository = userRepository;
_mapper = mapper;
_accountRepository = accountRepository;
_activeDirectoryRepository = activeDirectoryRepository;
}
public async Task<UserApiModel> Handle()
{
...
}
}