Spring REST - zwrócenie kilku list.

0

Hej, mam szybkie pytanie.
Załóżmy, że na froncie mam formularz, którym klient może sobie dodać do bazy notebooka. Niektóre pola są polami tekstowymi, ale chciałbym dodać np. listy rozwijane, gdzie będzie mógł wybrać markę, przekątną matrycy itd.
Ta rozmiarówka matryc, lista marek i podobne chcę przechowywać w osobnych tabelach w bazie danych, żeby nie powielać tych samych rekordów. Dane do strony chcę przekazywać GETem. I teraz pytanie: jak zgrabnie przesłać do widoku zarówno listę przekątnych, jak i marek itd? Co zwracam wtedy w kontrolerze? Jak to zgrabnie zrobić?

Z góry dzięki za pomoc! ;)

1

Jeśli nie ma żadnych korelacji między na przykład marką a przekątną matryc itp a jedynie jest to kilka oddzielnych list to dodaj po prostu kilka obiektów do zwracanego ModelAndView (lub Model jeśli go zwracasz).

0
eL napisał(a):

Jeśli nie ma żadnych korelacji między na przykład marką a przekątną matryc itp a jedynie jest to kilka oddzielnych list to dodaj po prostu kilka obiektów do zwracanego ModelAndView (lub Model jeśli go zwracasz).

Czytałem na stacku, że to nie jest dobra praktyka.
Chyba, że do wyświetlania formularza wystawić kontroler nieRESTowy?
No bo w sumie adres endpointu RESTowego reprezentuje jakiś zasób, a w formularzu wyświetlane jest kilka zasobów.

1

To albo robisz to RESTem, albo MVC. Jeśli chcesz używać RESTa. to wystaw endpoint dla każdego zasobu osobno, a z front-endu wyślij odpowiednio wiele requestów. W drugim przypadku, tak jak wspomniał @eL, dodaj te zasoby do obiektu klasy ModelAndView (lub Model, w zależności z której korzystasz).

0
dargenn napisał(a):

To albo robisz to RESTem, albo MVC. Jeśli chcesz używać RESTa. to wystaw endpoint dla każdego zasobu osobno, a z front-endu wyślij odpowiednio wiele requestów. W drugim przypadku, tak jak wspomniał @eL, dodaj te zasoby do obiektu klasy ModelAndView (lub Model, w zależności z której korzystasz).

Aha, czyli z jednej strony na froncie mogę stukać do kilku endpointów o zasoby, tak?

0

Jeszcze jedno pytanko, ktore nie daje mi spokoju na tyle, ze wczoraj nie moglem zasnąć :D
Mianowicie: skoro strona z formularzem bedzie odpytywac kilka restowych endpointow backendowych o zasoby, czyli np:
example/api/producents/
example/api/screens/
itd. to jak rozwiazac sprawę tego, zeby klient wchodzac na strone formularza widzial adres np. http://example/form/ ?

Pytam, bo dotychczas robilem apki w Springu MVC, gdzie metody kontrolera determinowaly sciezke URL, a wszystkie obiekty, listy itd po prostu wrzucalem w model.addAttribute i tyle.

1
Belka napisał(a):

No właśnie front-end to nie moja bajka, dlatego ciekawi mnie tak to się rozwiązuje w praktyce. W Springu MVC metody kontrolera po prostu zwracały nazwę pliku html a do modelu sobie dodawałem jakieś zasoby. Endpointy zwracają natomiast zasoby, więc co w takim razie spaja te kilka zapytań do endpointów?

Albo ja Ciebie nie rozumiem, albo Ty nie rozumiesz co piszesz.
Nie wiem co masz na froncie ale na przykładzie Angulara:

  • używa się routingu (poczytaj)
  • z poziomu componentu wywolujesz metodę (jedną lub więcej) z servicu, która wysyła request na twoje REST api springowe
  • obrabiasz te dane
  • z pliku html odwołujesz sie do obiektów z danymi z componentu
0
kixe52 napisał(a):

Albo ja Ciebie nie rozumiem, albo Ty nie rozumiesz co piszesz.
Nie wiem co masz na froncie ale na przykładzie Angulara:

  • używa się routingu (poczytaj)
  • z poziomu componentu wywolujesz metodę (jedną lub więcej) z servicu, która wysyła request na twoje REST api springowe
  • obrabiasz te dane
  • z pliku html odwołujesz sie do obiektów z danymi z componentu

Chyba dobrze mnie zrozumiałeś, ale mogłem niezbyt jasno to przedstawić. Pytałem raczej po to, żeby po prostu wiedzieć, ponieważ zaczynam robić z kimś aplikację i ja zajmę się backendem, a ta osoba frontem. Mam wystawić RESTowe API i ciekawilo mnie jak to się później obrabia na froncie, aby wiedzieć co leży po mojej stronie, a co po stronie mojego kolegi frontendowca.

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