Wpis z mikrobloga

Mam dylemat. Chciałbym na froncie używać takich frameworkow jak React, czy Vue. Uczę się Springa, ale wydaje mi się on zbyt obszerny do moich celów, a zintegrowanie go z tak zbudowanym frontem też nie napawa optymizmem, bo jak już zobaczyłem np. Thymeleaf sprawia problemy. Chciałbym tworzyć głównie Single Page Apps, typu chaty i inne względnie proste strony. Myślę, czy nie przejść na node js albo spróbować się przekonać do php
#php #nodejs #programowanie #webdev #java
  • 24
a zintegrowanie go z tak zbudowanym frontem też nie napawa optymizmem


@mmprogr:
Co. Jaka integracja?
Dla frontu wystawiasz api w jsonie i tyle. W czym je sobie napiszesz nie ma dla niego żadnego znaczenia.
@Vinniczek To chyba coś źle zrozumiałem, jak wygląda taki backend. Wytłumaczyłbyś mi jak to wygląda i przebiega? Routing też odbywa się w warstwie frontu? Bo w "standardowym" podejściu zwracam home.html pod /home, a tutaj rozumiem, że odbywa to się inaczej
@mmprogr:
Tak w skrócie, wystawiasz endpointy na których oczekujesz informacji (może byc w json) i zwracasz z nich informację (też może być json). Front wysyła request (np GET czy POST) na wystawiony przez backend endpoint, w odpowiedzi dostaje dane i na podstawie ich uzupełnia widoki.

Masz osobny routing dla frontu i osobny dla backendu, to są dwie osobne aplikacje.
Zacznij od jakiś prostych przykładów z REST API zanim zaczniesz uczyć się
@Vinniczek: @Rst00: @larvaexotech: Jak wygląda struktura takiej aplikacji? Tworzę 2 projekty? Jeden dla backendu i drugi dla frontu? Jak się odwołuję do backendu? Jeśli mam http://localhost:8080/home, to z poziomu frontu url wygląda tak: "http://localhost:8080/home", czy odbywa się to w inny sposób? Dotychczas odwoływałbym się po przez /home. Zdaję sobie sprawę, że zadaję głupie pytania, ale staram się to zrozumieć. Moje pytania w dużej części pokrywają się z tym tematem:
@sambarumba:
Nie wiem co w tym śmiesznego, nie jest to ani najgorszy ani najlepszy język (bo no, nie ma takich, najlepszy to ten w którym to co masz zrobić zrobisz dobrze i szybko). Siódemka jest bardzo spoko ale po co ja się tu produkuję xd

@mmprogr:
Tak, masz dwa projekty. Na resztę pytań odpowiedzi masz w moim powyższym komentarzu. Odwołujesz się na takie endpointy jakie sobie wystawisz w backendzie. Chcesz
@mmprogr:

Tak, dwa osobne projekty.

Załóżmy że backend masz na localhost/backend i zwraca on pod adresem localhost/backend/posts listę wszystkich postów w JSONie. Front masz pod localhost/frontend i w nim wystawiasz sobie routing np. localhost/frontend/dupa i obsługujesz żeby dane do renderingu brał z localhost/backend/posts.

Backend ma tylko wystawić dane, na froncie sobie robisz widoki itd.
@mmprogr:
Otwórz sobie narzedzia developerskie na jakieś stronie (no nie wiem niech to będzie nawet jakdojade.pl, bo akurat włączone miałem xd), wejdź w zakładkę Network, przestaw na XHR i zobacz na jakiej stronie jesteś a jakie requesty lecą do backendu(i co on zwraca)
@Vinniczek: No właśnie zauważyłem problem z CORSem, bo mam 2 projekty w Intellij stworzone. Jeden dla frontu i drugi Springa. Front odpala się na http://localhost:63342, a back na http://localhost:8080. Czyli muszę statycznie ustawić url-e z frontu do backendu i zmieniać za każdym razem, jak zmienia się domena/serwer?
@mmprogr:
To wszędzie to powinno być u Ciebie jedno miejsce. Jeśli masz inaczej to trochę słabo.

No i raczej oczywiste jest, że jak backend przenosi się pod inny adres no to front musi o tym wiedzieć.