2015-11-14 36 views
1

Some say它的“往往不可取”为REST服务器允许实体的整个集合的DELETEion。这是RESTful做DELETE集合吗?

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

这是实现RESTful必杀技的真正规则吗?

又是怎么回事子集,通过查询参数定义的?

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

它宁静吗?是。这是正确的做法?它取决于 – Androiderson

+2

没有什么不安。这只是你真的想删除数据吗?这是有价值的数据。在很多情况下,而不是删除,只是改变一些“活动”状态 –

回答

0

(他们实际上说“不经常需要”,其中一个可能解释略有不同“往往不可取的。”)

是的,它是基于REST的。如果你有一个有效的用例,那么可以这样做。你的第二个场景(用查询删除)通常很有用,并且可以是一种简单的方法来减少客户端的HTTP请求数量。

编辑:作为@peeskillet说,你考虑一下,如果你真的想删除的东西,对改变一些标志上的记录(例如“活动”)。

+0

好吧,HTTP删除并不禁止我的服务器在持久数据库上使用逻辑删除。这是一个切题无关的话题... – bruno

1

这个问题的答案取决于更多的要求和您的应用程序比在任构建固有RESTfulness风险。

这“不是经常需要”删除整个集合,如果你想象的集合作为一些与持久如客户名单重要性。它没有违背一些重要的REST智慧。

如果集合包含用户应该能够删除的信息以及潜在的大量信息,那么删除整个集合可以是最好的REST方法,而不是运行大量单独的DELETE 。基于标准

删除(例如查询参数)是必不可少的一些应用程序,如果REST警方宣布它正式UnRESTful我会继续做它没有羞耻。