Wpis z mikrobloga

Mam pytanie odnośnie architektury REST Api składającego się z 2 projektów :
-core - zawierające datacontext, modele dto, service wyciągające dane z bazy .
- Api - zawierające controllery, ustawienia aplikacji itd.
Aplikacja korzysta z usług google takich jak storage do przechowywania plików lub ML/AI itd.
Pytanie teraz gdzie powinny znajdować się klasy odpowiedzialne za obsługę googl'a i w którym momencie powinny być wywoływane ?
Normalnie proces wygląda tak : kontroler - > service - > baza danych
W przypadku uploadu plików w kontrolerze wywołuje GoogleStorage, przypisuje url pliku do obiektu zawierającego plik i tak spreparowany obiekt przekazuje do Service w którym znajduje się jedynie wyciąganie/wstawianie danych do bazy,wtedy część logiki znajduje się w kontrolerze a chyba nie powinna?
Także w tym momencie usługi googlowe trzymam w APi.
#webdev #api #dotnet #dotnetcore #programowanie
  • 6
@FFF1243: Czyli service nie powinien wykonywać akcji bezpośrednio na datacontext, tylko infrastructure ? To nowe dla mnie bo w większości kursów i boilerplatow z serwis -> datacontext a komercyjnie nie miałem z takim projektem do czynienia to nie wiem
@DaxterPoker: jak planujesz że będzie to małe to nie ma sensu robić tylu abstrakcji, ale jeśli choćby dopuszczasz taką myśl że się to rozrośnie to zdecydowanie warto pójść w osobną warstwę infrastructure.
@trustME: masz jakiś projekt, tutorial jak to powinno wyglądać ?
Utworzyłem już nowy projekt na infrastructure według instrukcji @MadSciencist zostawiłem interfejsy w core a implementacje usług google przeniosłem do infrastructure jednak zrodziły się pytania :
1. Tak samo jak z chmura ma to wyglądać w przypadku bazy danych ?
2. Gdzie powinny być wtedy migracje w core/interface ?
3. czy w klasie Service znajdującej się w core coś zmieniać czy jedynie