我有一個UI(角度),作爲Spring引導應用程序託管, UI與REST API(Jersey)對話。 當整個應用程序或其中的一部分進行維護時:REST:處理網站維護
1)我不確定,如何向任何現在訪問的人顯示維護網頁(它應該是角度還是彈簧引導,後端,以及如何?)。
2)對於已經在網站某個部分的用戶,我如何通知他們他們需要刷新。
3)對於已經在網站某個部分的用戶,如果他們沒有刷新,並且以後在維護結束後,如果他們發送帶有一些舊的無效數據的POST請求,我該如何檢查?
注意:該網站沒有任何用戶驗證。
作爲第三點的示例: UI顯示數據庫中記錄的列表,並且用戶正在對其中一個記錄進行更改,同時後端進入維護狀態。現在,此用戶提交更改後的數據,當後端再次可用時。但是這個數據現在是無效的。我怎麼能識別,並可能通知用戶。
感謝您的相當詳細的解釋。 是的,通過更新我的意思是數據庫我會改變和新的記錄可能會被添加。關於第二個問題,如果某些記錄被添加到數據庫(或刪除),如果當前用戶正在他的屏幕上使用這些記錄,那麼現在它是無效的,並且如果他在更改後將更改的記錄提交回API ,那麼我需要確定它來自舊頁面,可能忽略它。 – gaurav5430
在這種情況下,我會生成一個當前狀態的哈希值,並將其作爲ETag頭與響應一起發送,並且如果在維護過程中某些記錄的狀態發生更改(通過您應用的任何邏輯),嘗試更新記錄一個處理了無效數據的客戶端應該會失敗,因爲前提條件沒有得到滿足(當前ETag值與用戶嘗試更新的值不同)。如果在維護期間沒有更改狀態並且用戶更新「舊」狀態,則更新將成功,因爲舊數據等於更新前的狀態,因此不會出現衝突。 –