是RESTful做DELETE集合吗?

时间:2015-11-14 01:31:19

标签: rest

Some say REST服务器的“通常不可取”允许整个实体集合的DELETEion。

DELETE http://www.example.com/customers 

这是实现RESTful天堂的真正规则吗?

那么由查询参数定义的子集合呢?

DELETE http://www.example.com/customers?gender=m

2 个答案:

答案 0 :(得分:1)

对此的答案更多地取决于应用程序的要求和风险,而不是取决于任一构造的固有RESTful。

它并不常见[&34;如果您将集合想象为具有持久重要性的集合(如客户列表),则删除整个集合。它并没有打破一些重要的REST智慧。

如果集合包含用户应该能够删除的信息,并且可能包含大量此类信息,那么整个集合的DELETE可能是最好的REST-ish方式,而不是运行大量单独的DELETE。

根据标准(例如查询参数)进行删除对于某些应用程序来说非常重要,如果REST警察宣布它正式取消,我会继续这样做而不会感到羞耻。

答案 1 :(得分:0)

(他们实际上说"通常并不可取,"哪一个可能与#34略有不同;通常不可取。")

是的,它是RESTful的。如果您有一个有效的用例,那么这样做很好。您的第二个场景(使用查询删除)通常很有用,并且可以是减少客户端必须进行的HTTP请求数量的简单方法。

编辑:正如@peeskillet所说,请考虑是否确实要删除某些内容,而不是更改记录上的某些标记(例如"有效")。