我目前一直堅持以一種方式設計我的端點,以便它們符合REST原則,同時確保底層數據的完整性。以RESTful方式轉換資源
我有兩個資源,ShadowUser
和RealUser
,而第一個只有名字,姓氏和電子郵件。 第二個用戶擁有更多的屬性,例如Id,在該Id下可以在系統中的其他位置尋址真實用戶。
我用例是具體ShadowUser
秒值進行轉換成真正的用戶。
在我腦海中的流動似乎很簡單:
- 得到影子用戶/ GET API/ShadowUsers somePropery = someValue中
- 創造新的真正的用戶與數據獲取/ POST API/RealUsers ?
- 刪除陰影用戶/ DELETE API/ShadowUSers?somePropery = someValue中
但會發生什麼時,有創造新的用戶和那些陰影的缺失之間的問題?數據現在不一致。 當只有一個用戶時,該示例更加容易,但問題保持不變,因爲步驟2和3之間可能存在某些問題,導致用戶以陰影和真實形式存在。
所以現在的問題是,如何能在「交易」的方式,其中,任何事情都有進行,並堅持還是出事了,沒有什麼已經在底層數據存儲改變了嗎?
是否有任何可以使用的「最佳實踐」或「設計模式」?