1

根據所使用的基本身份驗證,如果一個url接受不同的有效負載,是否認爲設計不好?例如:良好的設計:對於同一網址的不同賬號有不同的有效載荷

http://localhost/userA PUT by userA is allowed up pass XML_A but 

http://localhost/userA PUT by adminA is allowed up pass XML_B which is XML_A plus more. 

換句話說,它是相同的資源,但是可以更新的內容是根據提供的憑證確定的。

我已經看到關於返回數據的對話,但沒有太多關於請求有效載荷的內容。 (不知道是否會被認爲是不同的)感謝

UPDATE

基於關閉的達雷爾 - 米勒信息,將下面是一個更好的設計?

GET /{Username}  readonly resource returns different payload based off of rights 
GET /{Username}/UpdInfo returns only updatable info (subset of GET /{Username}) 
PUT /{Username}/UpdInfo updates info 1 to 1 from the GET /{Username}/Info 

GET /admin/{Username}/UpdInfo returns updatable info (larger subset of GET /{Username}) 
PUT /admin/{Username}/UpdInfo updates info 1 to 1 from the GET /admin/{Username}/Info 
+0

+1很好的問題! – 2010-10-14 05:09:50

回答

0

我看到的問題是PUT方法會替換目標資源的全部內容。例如,如果發生以下序列,則

PUT /UserA with XML_B 

PUT /UserA with XML_A 

GET /UserA returns XML_A 

UserA不再包含XML_B中包含的額外信息。

它認爲你會更好,只是代表了兩組不同的信息,不同的資源:

GET /admin/UserA 

PUT /admin/UserA with XML_B 

GET /UserA 

PUT /UserA with XML_A 
+0

嗯..我唯一的困惑是,XML_B派生自XML_A。所以我的想法是UserA訪問GET/UserA並看到XML_A更改並使用XML_A執行PUT/UserA。 AdminA出現並執行GET/UserA並看到XML_B(它是XML_A加上一些額外的字段),並用XML_B執行PUT/UserA。如果用戶A調用GET/UserA,他們將看到XML_A(它是XML_B,但被「鑄造」成爲受限視圖的XML_A)。 – BabelFish 2010-10-14 15:44:45

+0

我用一個替代的網頁佈局更新了我的問題。請讓我知道你的想法 – BabelFish 2010-10-14 15:54:46

相關問題