W REST - revertable DELETE podano ładne wprowadzenie do opisu zmian stanu modelu w REST. Zasadniczo, jeśli masz zasób z polem o statusie, po prostu umieść nową wersję tego zasobu z polem aktualizacyjnym o statusie.REST - przejścia modelu stanowego
W tym temacie chciałbym rozszerzyć ten model. Załóżmy, że masz zasób, który może być w dwóch stanach: 1 i 2. W przeciwieństwie do prostego modelu opisanego w cytowanym poście, istnieją trzy przejścia do przechodzenia od stanu 1 do stanu 2, zamiast tylko jednego.
Moje pytanie brzmi: w jaki sposób modelujesz przejścia stanu w trybie REST?
ja nie mogę wymyślić POST RPC-like, co nie jest bardzo RESTian prawdopodobnie:
POST http://server/api/x
target_state=2&transition=3
To zmienia zasobu x od stanu 1 do stanu 2 przy użyciu przejścia 3.
Po pierwsze, bardzo dziękuję za szczegółową odpowiedź. Bardzo fajny. Ale nadal nie jestem przekonany, że każde przejście można łatwo modelować jako stan. Myślę, że istnieje ogromna różnica między państwami pośrednimi a stanami stałymi. Obejmowałeś drugą grupę. O pierwszej grupie, na przykład: powiedz, że możesz przemieścić się z bezdomnego do posiadacza na 3 sposoby: płacisz za to, odziedziczysz lub wygrywasz w loterii. Czy zamierzasz również modelować to jako oddzielne stany? Czy to nie prowadzi do eksplozji stanów "tylko po to, by reprezentować różne przejścia jako stany"? Jak to widzisz? –
[Przez "posiadacza" miałem na myśli "skradziony". Jeśli płacisz za to lub wygrywasz w loterii, jesteś w stanie "właściciela".] Jeśli ma znaczenie dla twojej aplikacji, która ścieżka jest brana, to tak, powinieneś albo zatrudniać stany pośrednie, tworzyć nowe stany końcowe, albo dodawać dodatkowy stan (jak zasób hipoteki) do reprezentowania różnic. – fumanchu
W porządku, ma sens. Obawiam się jedynie eksplozji stanów "wirtualnych", generowanych przez iloczyn krzyżowy wszystkich możliwych przejść. –