RestController w kiedy używać @RequestBody a kiedy @RequestParam i @PathVariable?

0

Kiedy w RestController kiedy używać @RequestBody a kiedy @RequestParam i @PathVariable?

3

@RequestParam - /endpoint**?foo=bar**
@PathVariable - /endpoint/{foo}
@RequestBody - "ciało" requestu, np. w POST.

0

Multisearch i robi się problem. Wyciągać @Getem z 10 parametrami w URL czy robić @Postem i wysyłać body?

2

Tutaj nie ma jednego uniwersalnego rozwiązania, więc trzeba ostrożnie przedstawiać opinie :P I dla większej polemiki to pewnie powinno być w innym dziale niż Java.
Przykładowo allegro robi wszystko w gecie, wszedłem w kategorię iphone'a i zaznaczałem losowe parametry, efekt:

https://allegro.pl/kategoria/smartfony-i-telefony-komorkowe-apple-48978?bmatch=baseline-al-product-cl-eyesa2-engag-dict43-ele-1-3-0318&price_to=600&allegro-smart-standard=1&stan=nowe&stan=u%C5%BCywane&dostawa-kurier=1&freeShipping=1&typ=Smartfon&kolor=r%C3%B3%C5%BCowy&system-operacyjny=iOS&slot-karty-pamieci=nie&transmisja-danych=4G%20(LTE)&zlacza=mini%20jack%203%2C5%20(audio)&pamiec-ram=2%20GB&komunikacja=Bluetooth&komunikacja=NFC&czujniki=czytnik%20linii%20papilarnych&opcje-sim=Single%20SIM&vat_invoice=1&monety=1&super-sprzedawca=1

Allegro query parameters

Przy okazji mała anegdota w projekcie przy którym pracowałem:
Mieliśmy URL podobny do wyższego, z tym, że jeszcze dłuższy. I dla jakiegoś zapytania testerka zgłosiła mi błąd. Ja wchodzę, reprodukuję - działa. Zatem ona dzwoni mi pokazać, że u niej nie. Ja testowałem na Chrome, ona na IE. Jaki był problem? IE ma hard limit na N znaków w URL (gdzie N wynosiło coś koło 2000) :) A jako że w wymaganiach mieliśmy wspieranie IE, rozwiązaniem problemu było przeniesienie parametrów do POSTa ;)

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