删除Restful webservice中的操作

时间:2011-10-21 08:00:21

标签: web-services rest

我在我的webservice中遇到过一种情况,我要删除资源并使用user指定的其他资源更新引用此资源的其他资源。我怎样才能以RESTful方式实现这一目标?

例如: DELETE资源代理/ 123 某些客户可能被分配到此代理,因此在删除代理123时,用户将为所有这些客户指定另一个代理125.

我想到了以下方法:

在网址Agent / 123/125上删除请求 在服务器上,我将在url Agent / 123处理此请求,新代理ID将被视为125。 我觉得这完全远离RESTful方式,所以想到放弃这个想法。请告诉我这种安静的方式。

另一种选择是: 删除代理/ 123?ReAssignId = 125

我不确定这是否也是宁静的方式,我在这个question中遇到过这种方法。我仍然不相信这个策略。

有没有人遇到过这种情况,应该如何以宁静的方式处理这种情况?

3 个答案:

答案 0 :(得分:1)

FWIW,我喜欢选项Delete Agent/123?ReAssignId=125,因为重新分配号码只是与删除操作相关联的元值。核心操作是删除(资源被删除,不再可用)。

答案 1 :(得分:0)

这听起来更像是一个UPDATE操作,而后来当新代理已经为客户设定时是DELETE。如果两种方法都必须是原子的,我认为最好的REST方法是在客户端组织它。

答案 2 :(得分:0)

要真正成为REST,您必须单独更新每个客户资源,然后删除代理。但是如果你意识到这更像是一个指导原则,那么我真的没有理由不使用你的ReAssignId技术。