POST czy GET - Spring

0

Witam. Może głupie pytanie, ale do przesłania jednego parametru do controllera, a w nim dodanie czegoś do bazy danych dla tego id powinienem użyć geta czy posta?

Użyłem geta jak niżej, ale zastanawiam się czy poprawniej nie powinno być to robione postem?

@GetMapping("/add")
	public void add(@RequestParam Integer id)  {
		zapisuję coś do bazy
	}
0

jak tylko id przesyłasz to spoko getem. Nawet weź to wrzuć do urla i wtedy @PathVariable

0

A jak chcę przekazać jeszcze jakąś wartość? np id obiektu i wartość.Mam to zrobione GETem tak:

@GetMapping("/add/{obj_id}")
	public String add(@PathVariable("obj_id") Long obj_id, @RequestParam String value)  {\
       //dodaję w bazie do obiektu o id = obj_id wartość value.
}

To nadal GET jest ok?
POSTa używać jak przesyłam więszką ilość danych w formularzu (np przy rejestracji) ?
Chodzi mi o to, że np jestem na testach do nowej pracy i czy użycie GETa w takiej sytuacji nie zostanie źle odebrane?

4

Generalnie warto iść zgodnie z logicznym założeniem:
GET - tylko pytam o coś i nie zmieniam systemu
POST - coś dodaje do systemu (zmieniam)
PUT - updatuje coś istniejącego w systemie
DELETE - kasuje

czyli u Ciebie raczej POST.

0

Ostatnie pytanie :) Jak za pomocą POST wysłać dwie wartości np typu String. Wszędzie jest tak jak w przykładzie czyli zwracany modelAttribute który jest obiektem klasy (tu Task z polem String o nazwie title i description), a przecież nie będę specjalnie robił dodatkowej klasy z polami title i description. Nigdzie nie mogłem znaleźć rozwiązania dlatego zrobiłem to za pomocą GETa.

 @PostMapping(value = "/add")
public String add(@ModelAttribute("objForm") Task task, BindingResult bindingResult, Model model, HttpServletRequest request) 
{
}

<form:form  method="POST"
		action="${contextPath}/add" modelAttribute="objForm">
                <form:input path="title" type="text"	id="title"  />
                <form:input path="description" type="text"	id="description"  />
</form:form>

No chyba że nie ma innego wyjśćia i trzeba zrobić klasę

1
akswery napisał(a):

a przecież nie będę specjalnie robił dodatkowej klasy z polami title i description.

I tutaj zachodzi pytanie. Dlaczego ?

btw. jeśli Ci naprawde szkoda klas. to faktycznie nie musisz.
https://stackoverflow.com/questions/17964841/how-to-get-param-in-method-post-spring-mvc
i zobacz odpowiedź Shamim Ahmmed

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