W skrócie
- Użyj
GET
dla safe and
idempotent
wniosków
- Użyj
POST
dla neither safe nor idempotent
wniosków
W szczegółach
Dla każdego jest odpowiednie miejsce. Nawet jeśli nie przestrzegasz zasad RESTful , możesz wiele zyskać na wiedzy o REST i sposobie działania podejścia zorientowanego na zasoby.
Aplikacja RESTful będzie use GETs
działać dla obu operacji safe and idempotent
.
ZA safe
Operacja jest operacją, która ma not change the data
wymagane.
Na idempotent
Operacja jest taka, w której wynik będzie be the same
bez znaczenia, ile razy można zażądać go.
Jest oczywiste, że ponieważ GET są używane do bezpiecznych operacji, są one również automatycznie idempotentne . Zazwyczaj GET służy do pobierania zasobu (na przykład pytania i powiązanych odpowiedzi na temat przepełnienia stosu) lub gromadzenia zasobów.
Użyje aplikacji RESTful PUTs
do operacji, które są not safe but idempotent
.
Wiem, że pytanie dotyczyło GET i POST, ale wrócę do POST za sekundę.
Zazwyczaj PUT jest używany do edycji zasobu (na przykład edycja pytania lub odpowiedzi na temat przepełnienia stosu).
POST
Będą wykorzystywane do każdej operacji, która jestneither safe or idempotent
.
Zazwyczaj POST byłby użyty do utworzenia nowego zasobu, na przykład do utworzenia NOWEGO pytania SO (chociaż w niektórych projektach PUT byłby również do tego użyty).
Jeśli uruchomisz POST dwa razy, utworzysz DWIE nowe pytania.
Jest też operacja DELETE, ale zgaduję, że mogę to tam zostawić :)
Dyskusja
W praktyce współczesne przeglądarki internetowe zazwyczaj niezawodnie obsługują tylko metody GET i POST (wszystkie te operacje można wykonywać za pomocą wywołań javascript, ale pod względem wprowadzania danych w formularzach i naciskania przycisku przesłania zazwyczaj dostępne są dwie opcje). W aplikacji RESTful test POST często jest zastępowany w celu zapewnienia wywołań PUT i DELETE.
Ale nawet jeśli nie przestrzegasz zasad RESTful, warto zastanowić się nad użyciem GET do pobierania / przeglądania informacji i POST do tworzenia / edycji informacji.
Nigdy nie powinieneś używać GET do operacji, która zmienia dane. Jeśli wyszukiwarka zaindeksuje link do Twojej zła operacji lub zakładek klienta, może to oznaczać duże problemy.