其餘的關鍵原則之一是不維護服務器上的狀態或無狀態地進行通信。我想看看這個原理如何在購物車上工作? 所以說,如果用戶從購物網站添加購物車中的產品。在我看來,服務器將有一些實現在會話範圍內有購物車,並且用戶將發送一個通話後將產品添加到購物車中。例如/ shoppingcart/products/1。現在,產品會保留添加到購物車中(但不會保留在數據庫中),直到用戶確認結帳。在確認退房時,購物車物品將被保存到服務器端的數據庫中。關於休息「無狀態通信」原理
這種方法(將商品置於服務器端的會話範圍內)違反休息原則嗎?如果是,那麼我們如何通過照顧「無狀態」通信原則來實現添加產品到購物車?
用戶很少(如果有的話)直接與REST服務交互。通常有一些中間代碼(無論是瀏覽器中的JS,厚客戶端,非REST網站,還是甚至在同一網站中託管的非REST代碼)。沒有什麼可以說* *代碼必須是無狀態的。 –
對不起,我需要知道的服務器端實現。是的,我同意用戶不會直接與休息服務交互,但會與一些js或與內部將使用其餘uri執行操作的其他機制進行交互。 –
與Damien所說的相反,用戶*直接與RESTful服務交互,它們在客戶端與非RESTful服務不能區分,而且用戶通常不知道!每個購物車都有自己的網址的任何購物車系統都可能設計有REST,即使該網址只能由創建它的用戶訪問。其中一小部分實際上是RESTful。 –