2011-04-08 85 views
3

當在資源上定義PUT方法時,它是否需要/ standard/customary包含資源的整個定義(即創建資源的所有內容),還是隻發送更新的字段也可以接受?PUT請求體必須包含整個實體嗎?

例如,如果我有10屬性的資源,其中包括一個名爲數量,我想更新數量爲指定的值。只可以批量購買嗎?

那其他9個屬性?假設每個屬性都可以單獨更新,定義請求主體是否只需將所有10個屬性設置爲可選是一種好的做法? REST風格使用時

回答

4

PUT打算更換整個資源,所以你會希望包括全套屬性。

也就是說,剩下的就是使用不當,而在大多數情況下,無論如何,只要你的API是記錄良好,你可以做任何你認爲最適合您的情況。

+0

謝謝賈斯汀。理由顯然是爲了減少帶寬/串行化開銷,但是回想我的RMI設計,我總是要求客戶端發送修改的*對象*而不是簡單的字段。然後服務器將決定是否詢問修改或完全替換。客戶端可以非常簡單 - GET,修改,PUT - 沒有其他邏輯和簡單的接口。 – 2011-04-08 16:59:33

+0

是的,使用PUT替換整個資源要好得多。 [PATCH方法](http://tools.ietf.org/html/rfc5789)偶爾會用於部分更新。 – 2011-04-08 19:30:30

相關問題