Spring Boot API + Angular frontend - jeden czy dwa projekty

0

Dzień dobry.
Od jakiegoś czasu tworzę aplikację internetowe, backend zbudowany na Spring Boot, a frontend na Angularze czy React'cie.
Nie wiem jednak, czy w takim projekcie właśnie backendowe API i frontend powinny być całkowicie odseparowane, czy powinno to być w jednym projekcie - jednym pliku .war który osadzam na serwerze?

1

Nie ma jakiejś ogólnej zasady. Możesz zrobić i tak i tak.

0

Dzięki za odpowiedź, zwykle umieszczałem właśnie w jednym projekcie, wszystkie pliki wrzucałem do katalogu /src/main/webapp, ale gdzieś wyczytałem, że powinno to być w src/main/resources/static. Czy to prawda? Jeśli tak to dlaczego w folderze static i czym się on różni od webapp?

2

o_O do static wrzuca się pliki które mają być dostępne "bezpośrednio" na serwerze, np. js, obrazki i takie tam. Ale nie wrzuca się tam raczej choćby szablonów, bo te mogą zdradzać niepotrzebnie szczegóły na temat implementacji.

0

dobrze, że autor zadal to pytanie bo właściwie sam sie nad tym całe zycie programistyczne zastanawiałem.. :)

ale doświadczenie podpowiada ze zalezy - jak masz zupełnie inny frontendowy team to zapewne bedzie to osobny projekt
jak frontend i backend jest robiony przez tych samych programistow fullstackowych to bedzie to w jednym

w domowych projektach robiłem na oba sposoby
w pracy zawsze było to połączone w jedno

ciekawi mnie czy jest jeszcze jakies kryterium przez które niektórzy decyduja sie na podzielenie na dwa osobne projekty?

1

@azalut skalowanie? ;) Możesz deployować N-backendów i M-frontendów i łączyć je sobie przez jakiś loadbalancer. Poza tym jeśli robisz jakieś backend-as-a-service i masz kilka zupełnie niezależnych frontów (np. mobile i web) to znów może nie mieć sensu upychanie tego razem.

0

Ja osobiście preferuję dwa oddzielne projekty bo potem można łatwo pewne rzeczy zaimplementować poprzez mikroserwisy. Generalnie argumenty @Shalom na temat skalowalności są chyba najbardziej celne...

0

Mam w pracy projekt rozbity na dwa, do tego używamy takiego tworu jak Zuul proxy.

0

Generalnie dwa. Im więcej osób pracuje tym bardziej dwa.
Co nie znacza, że nie można tego spakować potem do jednego war (lub jar). Ale to już deployment process - na release produkcyjny.

0

U mnie też dwa. O wiele łatwiej wtedy nam zrobić PipeLine na Jenkins a nie jakieś npm odpalane z poziomie Mavena. poza tym backendy można skalować niezależnie od frontu położonego jako static na ngix

0

Mam teraz projekt, gdzie robimy 3 fronty (z grubsza ta sama funkcjonalność :-) ) do jednego backendu. (dokładniej to 2 fronty mają już swój najlepszy czas za sobą - wchodzimy z 3ecim)

1 użytkowników online, w tym zalogowanych: 0, gości: 1