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
@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
jak zwykle wszystko zalezy od kontekstu, jesli apka staje sie wieksza warto dodac warstwe infrastruktury Tutaj jest jeden moim zdaniem przydatne template z wyjasnieniem co jaka warstwa robi: https://github.com/ardalis/CleanArchitecture
W core robisz interfejs do serwisów Googla i na nim operujesz. Interfejs implementujesz w nowym projekcie infrastructure (tam też EF powinien się znaleźć).
@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
Aktywne Wpisy
18+
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
-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
Tutaj jest jeden moim zdaniem przydatne template z wyjasnieniem co jaka warstwa robi:
https://github.com/ardalis/CleanArchitecture
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