如果有Foo類型的具有獨特的ID 36在位置處的資源:HTTP:部分更新資源(接受空字符串)的模式?
http://example.com/foo/36
和一個Foo包含幾條可變數據(var1
,var2
等),其中一些串的;
通過HTTP更新資源變量的部分集合的首選模式是什麼(假設我們可能希望將某些變量設置爲空字符串)?
(問題是空字符串的表單值是not considered "successful" by the W3C standard,不需要由瀏覽器提交,如果沒有發送空值,服務器不知道我們想要設置該變量。爲空字符串)
我想過以下選項:
POST
到http://example.com/foo/36
與具有「成功」的值的變量名稱/值對的列表,以及一個額外的參數,其值是我們希望設置爲空格的逗號分隔值列表y字符串。PUT
到http://example.com/foo/36/var1;var2;var3
,指定了我們想要作爲URI的一部分更新的一組完整值。任何未作爲PUT參數接收的指定名稱將被設置爲空字符串。在
http://example.com/foo/36/var1
,http://example.com/foo/36/var2
發送單獨PUT
請求每個變量,等發現每一個變量作爲一個單獨的資源(很明確,但涉及大量的請求)。
但是,這些都不是直觀,優雅或標準的我。
你的問題的一部分聽起來像你被限制在HTML表單。但是,在這種情況下,無論如何您都被限制爲POST。對? – 2010-11-02 17:47:03
我不想限制我的應用程序瀏覽器,所以我更願意明確地實現其他方法。爲了適應瀏覽器,我使用了「超負載POST」的非官方常見做法:允許'POST'請求提交一個名爲「method」的屬性,其值爲「'PUT'」,「'DELETE'」等。 – 2010-11-02 18:03:18