2013-04-07 60 views

回答

1

這很大程度上取決於上下文。

  • 如果資源id是服務器生成的,始終是唯一的(例如,它可能是POST /some-resource返回一個新id這是一個GUID的資源或者是一個SQL自動增量列),那麼你一定不要不需要指定任何具體的version刪除和DELETE /some-resource/{id}就足夠了。

  • 如果資源id是客戶端生成或僅目前現有的資源(可重複)中是唯一的,那麼你可以爲你的建議添加version查詢參數。

    • 你不得不問的問題是:如果你有非唯一或可重複的id值,你能否輕易地讓它們變成獨一無二的?如果是這樣,那麼首選參數DELETE的解決方案。
+3

在第一種情況下,我會說,指定版本也很有用,以確保用戶想要刪除的記錄仍然在爲用戶上次看到它相同的狀態。如果情況並非如此(即在此期間改變了,可能由其他人改變),那麼用戶可能不想再刪除它! – 2014-10-22 11:43:44

+0

也許正確的答案是同時使用不可重複的ID(以確保用戶刪除正確的對象 - 對象可能已經被併發用戶刪除並重新創建)和版本字段(以確保用戶在何時刪除對象它具有與上次獲取它相同的狀態)。 – 2015-02-04 07:56:56