Użyj adresów URL, aby określić obiekty, a nie działania:
Zwróć uwagę, że to, o czym wspomniałeś, nie jest RESTful:
/questions/show/<whatever>
Zamiast tego do określenia obiektów należy użyć adresów URL:
/questions/<question>
Następnie wykonujesz jedną z poniższych operacji na tym zasobie.
OTRZYMAĆ:
Służy do uzyskiwania zasobu, wykonywania zapytań o listę zasobów, a także do wysyłania zapytań o informacje tylko do odczytu dotyczące zasobu.
Aby uzyskać zasób pytań:
GET /questions/<question> HTTP/1.1
Host: whateverblahblah.com
Aby wyświetlić wszystkie zasoby związane z pytaniami:
GET /questions HTTP/1.1
Host: whateverblahblah.com
POCZTA:
Służy do tworzenia zasobu.
Zwróć uwagę, że następujący błąd to:
POST /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
Jeśli adres URL nie został jeszcze utworzony, nie należy używać POST do jego tworzenia podczas określania nazwy. Powinno to spowodować błąd „Nie znaleziono zasobu”, ponieważ jeszcze nie istnieje. Najpierw należy umieścić zasób na serwerze. Możesz argumentować, że tworząc nowe pytanie, aktualizujesz również zasób / questions, ponieważ teraz zwróci ono jeszcze jedno pytanie na swojej liście pytań.
Powinieneś zrobić coś takiego, aby utworzyć zasób za pomocą POST:
POST /questions HTTP/1.1
Host: whateverblahblah.com
Zauważ, że w tym przypadku nazwa zasobu nie jest określona, ścieżka URL nowego obiektu zostanie zwrócona.
USUNĄĆ:
Służy do usuwania zasobu.
DELETE /questions/<question> HTTP/1.1
Host: whateverblahblah.com
POŁOŻYĆ:
Służy do tworzenia zasobu lub nadpisywania go podczas określania adresu URL zasobów.
W przypadku nowego zasobu:
PUT /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
Aby nadpisać istniejący zasób:
PUT /questions/<existing_question> HTTP/1.1
Host: whateverblahblah.com
... Tak, są takie same. PUT jest często opisywany jako metoda „edycji”, ponieważ zastępując cały zasób nieznacznie zmienioną wersją, edytowałeś to, co klienci otrzymają, gdy zrobią to później.
Korzystanie z REST w formularzach HTML:
Specyfikacja HTML5 definiuje GET i POST dla elementu formularza .
Atrybut zawartości metody jest wyliczonym atrybutem z następującymi słowami kluczowymi i stanami:
- Słowo kluczowe GET, mapujące na stan GET, wskazujące metodę HTTP GET.
- Słowo kluczowe POST, mapujące do stanu POST, wskazujące metodę HTTP POST.
Technicznie specyfikacja HTTP nie ogranicza Cię tylko do tych metod. Z technicznego punktu widzenia możesz dodawać dowolne metody, jednak w praktyce nie jest to dobry pomysł. Chodzi o to, że wszyscy wiedzą, że używasz GET do odczytywania danych, więc będzie to skomplikowane, jeśli zdecydujesz się zamiast tego użyć READ. To mówi...
ŁATA:
Jest to metoda zdefiniowana w formalnym dokumencie RFC. Jest przeznaczony do użycia, gdy chcesz wysłać tylko częściową modyfikację zasobu, będzie używany podobnie jak PUT:
PATCH /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
Różnica polega na tym, że PUT musi wysłać cały zasób, bez względu na to, jak duży jest on w porównaniu z tym, co faktycznie się zmieniło, podczas gdy PATCH możesz wysłać tylko zmiany.