• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pierwsze REST API w Spring

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
+1 głos
803 wizyt
pytanie zadane 26 lipca 2017 w Java przez Jonki Dyskutant (8,180 p.)
Jak temat mówi, tworzę swoją pierwszą aplikację opartą o REST API. Raczej większość rozumiem, lecz trapią mnie niektóre sytuację. Np. użytkownik wchodzi na stronę do zmiany adresu email. Następnie po podaniu nowe email następuje wysłanie danych przez ajaxa lub angulara do RESTowego API i kontroler zwraca true lub false. Ok. Walidacja jest tworzona zarówno po stronie javascript, jak również w samym kodzie java. Dopóki w przeglądarce jest włączony javascript to wszystko jest ok. Pola formularza są walidowane. Jednak gdy użytkownik wyłączy w przeglądarce javascript i postanowi zmienić email, a następnie zmodyfikuje kod javascript i html tak, że dane są wysyłane z formularza bezpośrednio do kontrolera bez walidacji w js(jest wyłączona), to wtedy po walidacji w java nie jestem w stanie wypisać na stronie żadnych błędów jakie podał użytkownik, bo strona nie jest przeładowywana. Czyli wychodzi na to, że takie formularze jak edycja danych, które muszą myć walidowane w java, nie powinny działac na RESTowym kontrolerze, tylko na takim zwykłym zwracajacym stronę?

2 odpowiedzi

0 głosów
odpowiedź 31 lipca 2017 przez Mar Cin Dyskutant (8,900 p.)
Walidacja zawsze powinna być za równo po stronie back-endu jak i front-endu :)
0 głosów
odpowiedź 31 lipca 2017 przez event15 Szeryf (93,790 p.)
Walidacja powinna być wielopoziomowa, w zależności od tego w jaki sposób piszesz aplikację.

Gdy mówimy o aplikacji internetowej - po stronie końcowego użytkownika - problematyczną jest sama konieczność weryfikowania jakichkolwiek danych, które idą przez system. Wpływa to na UX strony. Nie zmienia to faktu, że czasem wymogiem biznesu jest sprawdzanie poprawności danych już na tym etapie (na przykład interfejs konta bankowego).

Reszta powinna się dziać już w warstwie aplikacji. Wystarczy zrobić prostą weryfikację parametru otrzymanego w Query Param lub inną metodą. Wtedy powinien być rzucany wyjątek który zostanie obsłużony przez formularz za pomocją JavaScriptu, czy czego tam chcesz po stronie GUI.

Do warstwy dziedziny przyjmuje się, że powinien już trafiać obiekt wcześniej zwalidowany, a więc i zawsze prawidłowy. Więc serwisy, które są w Infrastrukturze powinny również mieć możliwość odrzucenia nieprawidłowego adresu email.

To raczej ogólne spostrzeżenia.

Możesz też poczytać tu: https://zawarstwaabstrakcji.pl/20170309-walidacja-w-architekturze-wielowarstwowej/

Podobne pytania

0 głosów
1 odpowiedź 656 wizyt
pytanie zadane 27 lipca 2017 w Java przez Jonki Dyskutant (8,180 p.)
0 głosów
1 odpowiedź 302 wizyt
pytanie zadane 25 listopada 2019 w JavaScript przez varespol Użytkownik (710 p.)
0 głosów
2 odpowiedzi 770 wizyt
pytanie zadane 24 lutego 2018 w Java przez KubenQPL Maniak (62,840 p.)

93,444 zapytań

142,436 odpowiedzi

322,698 komentarzy

62,806 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...